"use strict";
const _export_sfc = (e, t) => {
  const n = e.__vccOpts || e;
  for (const [o, r] of t) n[o] = r;
  return n
};

function makeMap(e, t) {
  const n = Object.create(null),
    o = e.split(",");
  for (let r = 0; r < o.length; r++) n[o[r]] = !0;
  return t ? e => !!n[e.toLowerCase()] : e => !!n[e]
}

function normalizeStyle(e) {
  if (isArray$1(e)) {
    const t = {};
    for (let n = 0; n < e.length; n++) {
      const o = e[n],
        r = isString$1(o) ? parseStringStyle(o) : normalizeStyle(o);
      if (r)
        for (const e in r) t[e] = r[e]
    }
    return t
  }
  return isString$1(e) || isObject$1(e) ? e : void 0
}
const listDelimiterRE = /;(?![^(]*\))/g,
  propertyDelimiterRE = /:([^]+)/,
  styleCommentRE = /\/\*.*?\*\//gs;

function parseStringStyle(e) {
  const t = {};
  return e.replace(styleCommentRE, "").split(listDelimiterRE).forEach((e => {
    if (e) {
      const n = e.split(propertyDelimiterRE);
      n.length > 1 && (t[n[0].trim()] = n[1].trim())
    }
  })), t
}

function normalizeClass(e) {
  let t = "";
  if (isString$1(e)) t = e;
  else if (isArray$1(e))
    for (let n = 0; n < e.length; n++) {
      const o = normalizeClass(e[n]);
      o && (t += o + " ")
    } else if (isObject$1(e))
      for (const n in e) e[n] && (t += n + " ");
  return t.trim()
}
const toDisplayString = e => isString$1(e) ? e : null == e ? "" : isArray$1(e) || isObject$1(e) && (e.toString === objectToString || !isFunction$1(e.toString)) ? JSON.stringify(e, replacer, 2) : String(e),
  replacer = (e, t) => t && t.__v_isRef ? replacer(e, t.value) : isMap(t) ? {
    [`Map(${t.size})`]: [...t.entries()].reduce(((e, [t, n]) => (e[`${t} =>`] = n, e)), {})
  } : isSet(t) ? {
    [`Set(${t.size})`]: [...t.values()]
  } : !isObject$1(t) || isArray$1(t) || isPlainObject$1(t) ? t : String(t),
  EMPTY_OBJ = {},
  EMPTY_ARR = [],
  NOOP = () => {},
  NO = () => !1,
  onRE = /^on[^a-z]/,
  isOn = e => onRE.test(e),
  isModelListener = e => e.startsWith("onUpdate:"),
  extend$1 = Object.assign,
  remove = (e, t) => {
    const n = e.indexOf(t);
    n > -1 && e.splice(n, 1)
  },
  hasOwnProperty$1 = Object.prototype.hasOwnProperty,
  hasOwn = (e, t) => hasOwnProperty$1.call(e, t),
  isArray$1 = Array.isArray,
  isMap = e => "[object Map]" === toTypeString(e),
  isSet = e => "[object Set]" === toTypeString(e),
  isFunction$1 = e => "function" == typeof e,
  isString$1 = e => "string" == typeof e,
  isSymbol = e => "symbol" == typeof e,
  isObject$1 = e => null !== e && "object" == typeof e,
  isPromise = e => isObject$1(e) && isFunction$1(e.then) && isFunction$1(e.catch),
  objectToString = Object.prototype.toString,
  toTypeString = e => objectToString.call(e),
  toRawType = e => toTypeString(e).slice(8, -1),
  isPlainObject$1 = e => "[object Object]" === toTypeString(e),
  isIntegerKey = e => isString$1(e) && "NaN" !== e && "-" !== e[0] && "" + parseInt(e, 10) === e,
  isReservedProp = makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),
  cacheStringFunction = e => {
    const t = Object.create(null);
    return n => t[n] || (t[n] = e(n))
  },
  camelizeRE = /-(\w)/g,
  camelize = cacheStringFunction((e => e.replace(camelizeRE, ((e, t) => t ? t.toUpperCase() : "")))),
  hyphenateRE = /\B([A-Z])/g,
  hyphenate = cacheStringFunction((e => e.replace(hyphenateRE, "-$1").toLowerCase())),
  capitalize = cacheStringFunction((e => e.charAt(0).toUpperCase() + e.slice(1))),
  toHandlerKey = cacheStringFunction((e => e ? `on${capitalize(e)}` : "")),
  hasChanged = (e, t) => !Object.is(e, t),
  invokeArrayFns$1 = (e, t) => {
    for (let n = 0; n < e.length; n++) e[n](t)
  },
  def = (e, t, n) => {
    Object.defineProperty(e, t, {
      configurable: !0,
      enumerable: !1,
      value: n
    })
  },
  looseToNumber = e => {
    const t = parseFloat(e);
    return isNaN(t) ? e : t
  },
  LINEFEED = "\n",
  SLOT_DEFAULT_NAME = "d",
  ON_SHOW = "onShow",
  ON_HIDE = "onHide",
  ON_LAUNCH = "onLaunch",
  ON_ERROR = "onError",
  ON_THEME_CHANGE = "onThemeChange",
  ON_PAGE_NOT_FOUND = "onPageNotFound",
  ON_UNHANDLE_REJECTION = "onUnhandledRejection",
  ON_LOAD = "onLoad",
  ON_READY = "onReady",
  ON_UNLOAD = "onUnload",
  ON_INIT = "onInit",
  ON_SAVE_EXIT_STATE = "onSaveExitState",
  ON_RESIZE = "onResize",
  ON_BACK_PRESS = "onBackPress",
  ON_PAGE_SCROLL = "onPageScroll",
  ON_TAB_ITEM_TAP = "onTabItemTap",
  ON_REACH_BOTTOM = "onReachBottom",
  ON_PULL_DOWN_REFRESH = "onPullDownRefresh",
  ON_SHARE_TIMELINE = "onShareTimeline",
  ON_ADD_TO_FAVORITES = "onAddToFavorites",
  ON_SHARE_APP_MESSAGE = "onShareAppMessage",
  ON_NAVIGATION_BAR_BUTTON_TAP = "onNavigationBarButtonTap",
  ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED = "onNavigationBarSearchInputClicked",
  ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED = "onNavigationBarSearchInputChanged",
  ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED = "onNavigationBarSearchInputConfirmed",
  ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED = "onNavigationBarSearchInputFocusChanged",
  customizeRE = /:/g;

function customizeEvent(e) {
  return camelize(e.replace(customizeRE, "-"))
}

function hasLeadingSlash(e) {
  return 0 === e.indexOf("/")
}

function addLeadingSlash(e) {
  return hasLeadingSlash(e) ? e : "/" + e
}
const invokeArrayFns = (e, t) => {
  let n;
  for (let o = 0; o < e.length; o++) n = e[o](t);
  return n
};

function once(e, t = null) {
  let n;
  return (...o) => (e && (n = e.apply(t, o), e = null), n)
}

function getValueByDataPath(e, t) {
  if (!isString$1(t)) return;
  const n = (t = t.replace(/\[(\d+)\]/g, ".$1")).split(".");
  let o = n[0];
  return e || (e = {}), 1 === n.length ? e[o] : getValueByDataPath(e[o], n.slice(1).join("."))
}

function sortObject(e) {
  let t = {};
  return isPlainObject$1(e) && Object.keys(e).sort().forEach((n => {
    const o = n;
    t[o] = e[o]
  })), Object.keys(t) ? t : e
}
const encode$1 = encodeURIComponent;

function stringifyQuery(e, t = encode$1) {
  const n = e ? Object.keys(e).map((n => {
    let o = e[n];
    return void 0 === typeof o || null === o ? o = "" : isPlainObject$1(o) && (o = JSON.stringify(o)), t(n) + "=" + t(o)
  })).filter((e => e.length > 0)).join("&") : null;
  return n ? `?${n}` : ""
}
const PAGE_HOOKS = [ON_INIT, ON_LOAD, ON_SHOW, ON_HIDE, ON_UNLOAD, ON_BACK_PRESS, ON_PAGE_SCROLL, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_SHARE_TIMELINE, ON_SHARE_APP_MESSAGE, ON_ADD_TO_FAVORITES, ON_SAVE_EXIT_STATE, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED];

function isRootHook(e) {
  return PAGE_HOOKS.indexOf(e) > -1
}
const UniLifecycleHooks = [ON_SHOW, ON_HIDE, ON_LAUNCH, ON_ERROR, ON_THEME_CHANGE, ON_PAGE_NOT_FOUND, ON_UNHANDLE_REJECTION, ON_INIT, ON_LOAD, ON_READY, ON_UNLOAD, ON_RESIZE, ON_BACK_PRESS, ON_PAGE_SCROLL, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_SHARE_TIMELINE, ON_ADD_TO_FAVORITES, ON_SHARE_APP_MESSAGE, ON_SAVE_EXIT_STATE, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED],
  MINI_PROGRAM_PAGE_RUNTIME_HOOKS = (() => ({
    onPageScroll: 1,
    onShareAppMessage: 2,
    onShareTimeline: 4
  }))();

function isUniLifecycleHook(e, t, n = !0) {
  return !(n && !isFunction$1(t)) && (UniLifecycleHooks.indexOf(e) > -1 || 0 === e.indexOf("on"))
}
let vueApp;
const createVueAppHooks = [];

function onCreateVueApp(e) {
  if (vueApp) return e(vueApp);
  createVueAppHooks.push(e)
}

function invokeCreateVueAppHook(e) {
  vueApp = e, createVueAppHooks.forEach((t => t(e)))
}
const invokeCreateErrorHandler = once(((e, t) => {
    if (isFunction$1(e._component.onError)) return t(e)
  })),
  E = function () {};
E.prototype = {
  on: function (e, t, n) {
    var o = this.e || (this.e = {});
    return (o[e] || (o[e] = [])).push({
      fn: t,
      ctx: n
    }), this
  },
  once: function (e, t, n) {
    var o = this;

    function r() {
      o.off(e, r), t.apply(n, arguments)
    }
    return r._ = t, this.on(e, r, n)
  },
  emit: function (e) {
    for (var t = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[e] || []).slice(), o = 0, r = n.length; o < r; o++) n[o].fn.apply(n[o].ctx, t);
    return this
  },
  off: function (e, t) {
    var n = this.e || (this.e = {}),
      o = n[e],
      r = [];
    if (o && t)
      for (var i = 0, a = o.length; i < a; i++) o[i].fn !== t && o[i].fn._ !== t && r.push(o[i]);
    return r.length ? n[e] = r : delete n[e], this
  }
};
var E$1 = E;
const LOCALE_ZH_HANS = "zh-Hans",
  LOCALE_ZH_HANT = "zh-Hant",
  LOCALE_EN = "en",
  LOCALE_FR = "fr",
  LOCALE_ES = "es";

function include(e, t) {
  return !!t.find((t => -1 !== e.indexOf(t)))
}

function startsWith(e, t) {
  return t.find((t => 0 === e.indexOf(t)))
}

function normalizeLocale$1(e, t) {
  if (!e) return;
  if (e = e.trim().replace(/_/g, "-"), t && t[e]) return e;
  if ("chinese" === (e = e.toLowerCase())) return LOCALE_ZH_HANS;
  if (0 === e.indexOf("zh")) return e.indexOf("-hans") > -1 ? LOCALE_ZH_HANS : e.indexOf("-hant") > -1 || include(e, ["-tw", "-hk", "-mo", "-cht"]) ? LOCALE_ZH_HANT : LOCALE_ZH_HANS;
  let n = [LOCALE_EN, LOCALE_FR, LOCALE_ES];
  t && Object.keys(t).length > 0 && (n = Object.keys(t));
  const o = startsWith(e, n);
  return o || void 0
}

function getBaseSystemInfo() {
  return wx.getSystemInfoSync()
}

function tryCatch(e) {
  return function () {
    try {
      return e.apply(e, arguments)
    } catch (t) {
      console.error(t)
    }
  }
}
let invokeCallbackId = 1;
const invokeCallbacks = {};

function addInvokeCallback(e, t, n, o = !1) {
  return invokeCallbacks[e] = {
    name: t,
    keepAlive: o,
    callback: n
  }, e
}

function invokeCallback(e, t, n) {
  if ("number" == typeof e) {
    const o = invokeCallbacks[e];
    if (o) return o.keepAlive || delete invokeCallbacks[e], o.callback(t, n)
  }
  return t
}
const API_SUCCESS = "success",
  API_FAIL = "fail",
  API_COMPLETE = "complete";

function getApiCallbacks(e) {
  const t = {};
  for (const n in e) {
    const o = e[n];
    isFunction$1(o) && (t[n] = tryCatch(o), delete e[n])
  }
  return t
}

function normalizeErrMsg$1(e, t) {
  return e && -1 !== e.indexOf(":fail") ? t + e.substring(e.indexOf(":fail")) : t + ":ok"
}

function createAsyncApiCallback(e, t = {}, {
  beforeAll: n,
  beforeSuccess: o
} = {}) {
  isPlainObject$1(t) || (t = {});
  const {
    success: r,
    fail: i,
    complete: a
  } = getApiCallbacks(t), s = isFunction$1(r), c = isFunction$1(i), l = isFunction$1(a), u = invokeCallbackId++;
  return addInvokeCallback(u, e, (u => {
    (u = u || {}).errMsg = normalizeErrMsg$1(u.errMsg, e), isFunction$1(n) && n(u), u.errMsg === e + ":ok" ? (isFunction$1(o) && o(u, t), s && r(u)) : c && i(u), l && a(u)
  })), u
}
const HOOK_SUCCESS = "success",
  HOOK_FAIL = "fail",
  HOOK_COMPLETE = "complete",
  globalInterceptors = {},
  scopedInterceptors = {};

function wrapperHook(e, t) {
  return function (n) {
    return e(n, t) || n
  }
}

function queue$1(e, t, n) {
  let o = !1;
  for (let r = 0; r < e.length; r++) {
    const i = e[r];
    if (o) o = Promise.resolve(wrapperHook(i, n));
    else {
      const e = i(t, n);
      if (isPromise(e) && (o = Promise.resolve(e)), !1 === e) return {
        then() {},
        catch () {}
      }
    }
  }
  return o || {
    then: e => e(t),
    catch () {}
  }
}

function wrapperOptions(e, t = {}) {
  return [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((n => {
    const o = e[n];
    if (!isArray$1(o)) return;
    const r = t[n];
    t[n] = function (e) {
      queue$1(o, e, t).then((e => isFunction$1(r) && r(e) || e))
    }
  })), t
}

function wrapperReturnValue(e, t) {
  const n = [];
  isArray$1(globalInterceptors.returnValue) && n.push(...globalInterceptors.returnValue);
  const o = scopedInterceptors[e];
  return o && isArray$1(o.returnValue) && n.push(...o.returnValue), n.forEach((e => {
    t = e(t) || t
  })), t
}

function getApiInterceptorHooks(e) {
  const t = Object.create(null);
  Object.keys(globalInterceptors).forEach((e => {
    "returnValue" !== e && (t[e] = globalInterceptors[e].slice())
  }));
  const n = scopedInterceptors[e];
  return n && Object.keys(n).forEach((e => {
    "returnValue" !== e && (t[e] = (t[e] || []).concat(n[e]))
  })), t
}

function invokeApi(e, t, n, o) {
  const r = getApiInterceptorHooks(e);
  if (r && Object.keys(r).length) {
    if (isArray$1(r.invoke)) {
      return queue$1(r.invoke, n).then((n => t(wrapperOptions(getApiInterceptorHooks(e), n), ...o)))
    }
    return t(wrapperOptions(r, n), ...o)
  }
  return t(n, ...o)
}

function hasCallback(e) {
  return !(!isPlainObject$1(e) || ![API_SUCCESS, API_FAIL, API_COMPLETE].find((t => isFunction$1(e[t]))))
}

function handlePromise(e) {
  return e
}

function promisify$1(e, t) {
  return (n = {}, ...o) => hasCallback(n) ? wrapperReturnValue(e, invokeApi(e, t, n, o)) : wrapperReturnValue(e, handlePromise(new Promise(((r, i) => {
    invokeApi(e, t, extend$1(n, {
      success: r,
      fail: i
    }), o)
  }))))
}

function formatApiArgs(e, t) {
  const n = e[0];
  if (!t || !isPlainObject$1(t.formatArgs) && isPlainObject$1(n)) return;
  const o = t.formatArgs,
    r = Object.keys(o);
  for (let i = 0; i < r.length; i++) {
    const t = r[i],
      a = o[t];
    if (isFunction$1(a)) {
      const o = a(e[0][t], n);
      if (isString$1(o)) return o
    } else hasOwn(n, t) || (n[t] = a)
  }
}

function invokeSuccess(e, t, n) {
  return invokeCallback(e, extend$1(n || {}, {
    errMsg: t + ":ok"
  }))
}

function invokeFail(e, t, n, o) {
  return invokeCallback(e, extend$1({
    errMsg: t + ":fail" + (n ? " " + n : "")
  }, o))
}

function beforeInvokeApi(e, t, n, o) {
  if (o && o.beforeInvoke) {
    const e = o.beforeInvoke(t);
    if (isString$1(e)) return e
  }
  const r = formatApiArgs(t, o);
  if (r) return r
}

function normalizeErrMsg(e) {
  return !e || isString$1(e) ? e : e.stack ? (console.error(e.message + LINEFEED + e.stack), e.message) : e
}

function wrapperTaskApi(e, t, n, o) {
  return r => {
    const i = createAsyncApiCallback(e, r, o),
      a = beforeInvokeApi(e, [r], n, o);
    return a ? invokeFail(i, e, a) : t(r, {
      resolve: t => invokeSuccess(i, e, t),
      reject: (t, n) => invokeFail(i, e, normalizeErrMsg(t), n)
    })
  }
}

function wrapperSyncApi(e, t, n, o) {
  return (...r) => {
    const i = beforeInvokeApi(e, r, n, o);
    if (i) throw new Error(i);
    return t.apply(null, r)
  }
}

function wrapperAsyncApi(e, t, n, o) {
  return wrapperTaskApi(e, t, n, o)
}

function defineSyncApi(e, t, n, o) {
  return wrapperSyncApi(e, t, void 0, o)
}

function defineAsyncApi(e, t, n, o) {
  return promisify$1(e, wrapperAsyncApi(e, t, void 0, o))
}
const API_UPX2PX = "upx2px",
  EPS = 1e-4,
  BASE_DEVICE_WIDTH = 750;
let isIOS = !1,
  deviceWidth = 0,
  deviceDPR = 0;

function checkDeviceWidth() {
  const {
    platform: e,
    pixelRatio: t,
    windowWidth: n
  } = getBaseSystemInfo();
  deviceWidth = n, deviceDPR = t, isIOS = "ios" === e
}
const upx2px = defineSyncApi(API_UPX2PX, ((e, t) => {
    if (0 === deviceWidth && checkDeviceWidth(), 0 === (e = Number(e))) return 0;
    let n = e / BASE_DEVICE_WIDTH * (t || deviceWidth);
    return n < 0 && (n = -n), n = Math.floor(n + EPS), 0 === n && (n = 1 !== deviceDPR && isIOS ? .5 : 1), e < 0 ? -n : n
  })),
  API_ADD_INTERCEPTOR = "addInterceptor",
  API_REMOVE_INTERCEPTOR = "removeInterceptor";

function mergeInterceptorHook(e, t) {
  Object.keys(t).forEach((n => {
    isFunction$1(t[n]) && (e[n] = mergeHook(e[n], t[n]))
  }))
}

function removeInterceptorHook(e, t) {
  e && t && Object.keys(t).forEach((n => {
    const o = e[n],
      r = t[n];
    isArray$1(o) && isFunction$1(r) && remove(o, r)
  }))
}

function mergeHook(e, t) {
  const n = t ? e ? e.concat(t) : isArray$1(t) ? t : [t] : e;
  return n ? dedupeHooks(n) : n
}

function dedupeHooks(e) {
  const t = [];
  for (let n = 0; n < e.length; n++) - 1 === t.indexOf(e[n]) && t.push(e[n]);
  return t
}
const addInterceptor = defineSyncApi(API_ADD_INTERCEPTOR, ((e, t) => {
    isString$1(e) && isPlainObject$1(t) ? mergeInterceptorHook(scopedInterceptors[e] || (scopedInterceptors[e] = {}), t) : isPlainObject$1(e) && mergeInterceptorHook(globalInterceptors, e)
  })),
  removeInterceptor = defineSyncApi(API_REMOVE_INTERCEPTOR, ((e, t) => {
    isString$1(e) ? isPlainObject$1(t) ? removeInterceptorHook(scopedInterceptors[e], t) : delete scopedInterceptors[e] : isPlainObject$1(e) && removeInterceptorHook(globalInterceptors, e)
  })),
  interceptors = {},
  API_ON = "$on",
  API_ONCE = "$once",
  API_OFF = "$off",
  API_EMIT = "$emit",
  emitter = new E$1,
  $on = defineSyncApi(API_ON, ((e, t) => (emitter.on(e, t), () => emitter.off(e, t)))),
  $once = defineSyncApi(API_ONCE, ((e, t) => (emitter.once(e, t), () => emitter.off(e, t)))),
  $off = defineSyncApi(API_OFF, ((e, t) => {
    e ? (isArray$1(e) || (e = [e]), e.forEach((e => emitter.off(e, t)))) : emitter.e = {}
  })),
  $emit = defineSyncApi(API_EMIT, ((e, ...t) => {
    emitter.emit(e, ...t)
  }));
let cid, cidErrMsg, enabled;

function normalizePushMessage(e) {
  try {
    return JSON.parse(e)
  } catch (t) {}
  return e
}

function invokePushCallback(e) {
  if ("enabled" === e.type) enabled = !0;
  else if ("clientId" === e.type) cid = e.cid, cidErrMsg = e.errMsg, invokeGetPushCidCallbacks(cid, e.errMsg);
  else if ("pushMsg" === e.type) {
    const t = {
      type: "receive",
      data: normalizePushMessage(e.message)
    };
    for (let e = 0; e < onPushMessageCallbacks.length; e++) {
      if ((0, onPushMessageCallbacks[e])(t), t.stopped) break
    }
  } else "click" === e.type && onPushMessageCallbacks.forEach((t => {
    t({
      type: "click",
      data: normalizePushMessage(e.message)
    })
  }))
}
const getPushCidCallbacks = [];

function invokeGetPushCidCallbacks(e, t) {
  getPushCidCallbacks.forEach((n => {
    n(e, t)
  })), getPushCidCallbacks.length = 0
}
const API_GET_PUSH_CLIENT_ID = "getPushClientId",
  getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, ((e, {
    resolve: t,
    reject: n
  }) => {
    Promise.resolve().then((() => {
      void 0 === enabled && (enabled = !1, cid = "", cidErrMsg = "uniPush is not enabled"), getPushCidCallbacks.push(((e, o) => {
        e ? t({
          cid: e
        }) : n(o)
      })), void 0 !== cid && invokeGetPushCidCallbacks(cid, cidErrMsg)
    }))
  })),
  onPushMessageCallbacks = [],
  onPushMessage = e => {
    -1 === onPushMessageCallbacks.indexOf(e) && onPushMessageCallbacks.push(e)
  },
  offPushMessage = e => {
    if (e) {
      const t = onPushMessageCallbacks.indexOf(e);
      t > -1 && onPushMessageCallbacks.splice(t, 1)
    } else onPushMessageCallbacks.length = 0
  },
  SYNC_API_RE = /^\$|getLocale|setLocale|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getDeviceInfo|getAppBaseInfo|getWindowInfo|getSystemSetting|getAppAuthorizeSetting/,
  CONTEXT_API_RE = /^create|Manager$/,
  CONTEXT_API_RE_EXC = ["createBLEConnection"],
  ASYNC_API = ["createBLEConnection"],
  CALLBACK_API_RE = /^on|^off/;

function isContextApi(e) {
  return CONTEXT_API_RE.test(e) && -1 === CONTEXT_API_RE_EXC.indexOf(e)
}

function isSyncApi(e) {
  return SYNC_API_RE.test(e) && -1 === ASYNC_API.indexOf(e)
}

function isCallbackApi(e) {
  return CALLBACK_API_RE.test(e) && "onPush" !== e
}

function shouldPromise(e) {
  return !(isContextApi(e) || isSyncApi(e) || isCallbackApi(e))
}

function promisify(e, t) {
  return shouldPromise(e) && isFunction$1(t) ? function (n = {}, ...o) {
    return isFunction$1(n.success) || isFunction$1(n.fail) || isFunction$1(n.complete) ? wrapperReturnValue(e, invokeApi(e, t, n, o)) : wrapperReturnValue(e, handlePromise(new Promise(((r, i) => {
      invokeApi(e, t, extend$1({}, n, {
        success: r,
        fail: i
      }), o)
    }))))
  } : t
}
Promise.prototype.finally || (Promise.prototype.finally = function (e) {
  const t = this.constructor;
  return this.then((n => t.resolve(e && e()).then((() => n))), (n => t.resolve(e && e()).then((() => {
    throw n
  }))))
});
const CALLBACKS = ["success", "fail", "cancel", "complete"];

function initWrapper(e) {
  function t(e, t, n) {
    return function (r) {
      return t(o(e, r, n))
    }
  }

  function n(e, n, o = {}, r = {}, i = !1) {
    if (isPlainObject$1(n)) {
      const a = !0 === i ? n : {};
      isFunction$1(o) && (o = o(n, a) || {});
      for (const s in n)
        if (hasOwn(o, s)) {
          let t = o[s];
          isFunction$1(t) && (t = t(n[s], n, a)), t ? isString$1(t) ? a[t] = n[s] : isPlainObject$1(t) && (a[t.name ? t.name : s] = t.value) : console.warn(`微信小程序 ${e} 暂不支持 ${s}`)
        } else if (-1 !== CALLBACKS.indexOf(s)) {
        const o = n[s];
        isFunction$1(o) && (a[s] = t(e, o, r))
      } else i || hasOwn(a, s) || (a[s] = n[s]);
      return a
    }
    return isFunction$1(n) && (n = t(e, n, r)), n
  }

  function o(t, o, r, i = !1) {
    return isFunction$1(e.returnValue) && (o = e.returnValue(t, o)), n(t, o, r, {}, i)
  }
  return function (t, r) {
    if (!hasOwn(e, t)) return r;
    const i = e[t];
    return i ? function (e, r) {
      let a = i;
      isFunction$1(i) && (a = i(e));
      const s = [e = n(t, e, a.args, a.returnValue)];
      void 0 !== r && s.push(r);
      const c = wx[a.name || t].apply(wx, s);
      return isSyncApi(t) ? o(t, c, a.returnValue, isContextApi(t)) : c
    } : function () {
      console.error(`微信小程序 暂不支持${t}`)
    }
  }
}
const getLocale$1 = () => {
    const e = isFunction$1(getApp) && getApp({
      allowDefault: !0
    });
    return e && e.$vm ? e.$vm.$locale : normalizeLocale$1(wx.getSystemInfoSync().language) || LOCALE_EN
  },
  setLocale = e => {
    const t = isFunction$1(getApp) && getApp();
    if (!t) return !1;
    return t.$vm.$locale !== e && (t.$vm.$locale = e, onLocaleChangeCallbacks.forEach((t => t({
      locale: e
    }))), !0)
  },
  onLocaleChangeCallbacks = [],
  onLocaleChange = e => {
    -1 === onLocaleChangeCallbacks.indexOf(e) && onLocaleChangeCallbacks.push(e)
  };
"undefined" != typeof global && (global.getLocale = getLocale$1);
const UUID_KEY = "__DC_STAT_UUID";
let deviceId;

function useDeviceId(e = wx) {
  return function (t, n) {
    deviceId = deviceId || e.getStorageSync(UUID_KEY), deviceId || (deviceId = Date.now() + "" + Math.floor(1e7 * Math.random()), wx.setStorage({
      key: UUID_KEY,
      data: deviceId
    })), n.deviceId = deviceId
  }
}

function addSafeAreaInsets(e, t) {
  if (e.safeArea) {
    const n = e.safeArea;
    t.safeAreaInsets = {
      top: n.top,
      left: n.left,
      right: e.windowWidth - n.right,
      bottom: e.screenHeight - n.bottom
    }
  }
}

function populateParameters(e, t) {
  const {
    brand: n = "",
    model: o = "",
    system: r = "",
    language: i = "",
    theme: a,
    version: s,
    platform: c,
    fontSizeSetting: l,
    SDKVersion: u,
    pixelRatio: d,
    deviceOrientation: p
  } = e;
  let f = "",
    h = "";
  f = r.split(" ")[0] || "", h = r.split(" ")[1] || "";
  let m = s,
    g = getGetDeviceType(e, o),
    y = getDeviceBrand(n),
    v = getHostName(e),
    _ = p,
    x = d,
    k = u;
  const b = i.replace(/_/g, "-"),
    S = {
      appId: "__UNI__E924CC3",
      appName: "lvyou-wx",
      appVersion: "1.0.0",
      appVersionCode: "100",
      appLanguage: getAppLanguage(b),
      uniCompileVersion: "3.8.4",
      uniRuntimeVersion: "3.8.4",
      uniPlatform: "mp-weixin",
      deviceBrand: y,
      deviceModel: o,
      deviceType: g,
      devicePixelRatio: x,
      deviceOrientation: _,
      osName: f.toLocaleLowerCase(),
      osVersion: h,
      hostTheme: a,
      hostVersion: m,
      hostLanguage: b,
      hostName: v,
      hostSDKVersion: k,
      hostFontSizeSetting: l,
      windowTop: 0,
      windowBottom: 0,
      osLanguage: void 0,
      osTheme: void 0,
      ua: void 0,
      hostPackageName: void 0,
      browserName: void 0,
      browserVersion: void 0
    };
  extend$1(t, S)
}

function getGetDeviceType(e, t) {
  let n = e.deviceType || "phone"; {
    const e = {
        ipad: "pad",
        windows: "pc",
        mac: "pc"
      },
      o = Object.keys(e),
      r = t.toLocaleLowerCase();
    for (let t = 0; t < o.length; t++) {
      const i = o[t];
      if (-1 !== r.indexOf(i)) {
        n = e[i];
        break
      }
    }
  }
  return n
}

function getDeviceBrand(e) {
  let t = e;
  return t && (t = t.toLocaleLowerCase()), t
}

function getAppLanguage(e) {
  return getLocale$1 ? getLocale$1() : e
}

function getHostName(e) {
  let t = e.hostName || "WeChat";
  return e.environment ? t = e.environment : e.host && e.host.env && (t = e.host.env), t
}
const getSystemInfo = {
    returnValue: (e, t) => {
      addSafeAreaInsets(e, t), useDeviceId()(e, t), populateParameters(e, t)
    }
  },
  getSystemInfoSync = getSystemInfo,
  redirectTo = {},
  previewImage = {
    args(e, t) {
      let n = parseInt(e.current);
      if (isNaN(n)) return;
      const o = e.urls;
      if (!isArray$1(o)) return;
      const r = o.length;
      return r ? (n < 0 ? n = 0 : n >= r && (n = r - 1), n > 0 ? (t.current = o[n], t.urls = o.filter(((e, t) => !(t < n) || e !== o[n]))) : t.current = o[0], {
        indicator: !1,
        loop: !1
      }) : void 0
    }
  },
  showActionSheet = {
    args(e, t) {
      t.alertText = e.title
    }
  },
  getDeviceInfo = {
    returnValue: (e, t) => {
      const {
        brand: n,
        model: o
      } = e;
      let r = getGetDeviceType(e, o),
        i = getDeviceBrand(n);
      useDeviceId()(e, t), t = sortObject(extend$1(t, {
        deviceType: r,
        deviceBrand: i,
        deviceModel: o
      }))
    }
  },
  getAppBaseInfo = {
    returnValue: (e, t) => {
      const {
        version: n,
        language: o,
        SDKVersion: r,
        theme: i
      } = e;
      let a = getHostName(e),
        s = o.replace(/_/g, "-");
      t = sortObject(extend$1(t, {
        hostVersion: n,
        hostLanguage: s,
        hostName: a,
        hostSDKVersion: r,
        hostTheme: i,
        appId: "__UNI__E924CC3",
        appName: "lvyou-wx",
        appVersion: "1.0.0",
        appVersionCode: "100",
        appLanguage: getAppLanguage(s)
      }))
    }
  },
  getWindowInfo = {
    returnValue: (e, t) => {
      addSafeAreaInsets(e, t), t = sortObject(extend$1(t, {
        windowTop: 0,
        windowBottom: 0
      }))
    }
  },
  getAppAuthorizeSetting = {
    returnValue: function (e, t) {
      const {
        locationReducedAccuracy: n
      } = e;
      t.locationAccuracy = "unsupported", !0 === n ? t.locationAccuracy = "reduced" : !1 === n && (t.locationAccuracy = "full")
    }
  },
  baseApis = {
    $on: $on,
    $off: $off,
    $once: $once,
    $emit: $emit,
    upx2px: upx2px,
    interceptors: interceptors,
    addInterceptor: addInterceptor,
    removeInterceptor: removeInterceptor,
    onCreateVueApp: onCreateVueApp,
    invokeCreateVueAppHook: invokeCreateVueAppHook,
    getLocale: getLocale$1,
    setLocale: setLocale,
    onLocaleChange: onLocaleChange,
    getPushClientId: getPushClientId,
    onPushMessage: onPushMessage,
    offPushMessage: offPushMessage,
    invokePushCallback: invokePushCallback
  };

function initUni(e, t, n = wx) {
  const o = initWrapper(t);
  return new Proxy({}, {
    get: (t, r) => hasOwn(t, r) ? t[r] : hasOwn(e, r) ? promisify(r, e[r]) : hasOwn(baseApis, r) ? promisify(r, baseApis[r]) : promisify(r, o(r, n[r]))
  })
}

function initGetProvider(e) {
  return function ({
    service: t,
    success: n,
    fail: o,
    complete: r
  }) {
    let i;
    e[t] ? (i = {
      errMsg: "getProvider:ok",
      service: t,
      provider: e[t]
    }, isFunction$1(n) && n(i)) : (i = {
      errMsg: "getProvider:fail:服务[" + t + "]不存在"
    }, isFunction$1(o) && o(i)), isFunction$1(r) && r(i)
  }
}
const objectKeys = ["qy", "env", "error", "version", "lanDebug", "cloud", "serviceMarket", "router", "worklet"],
  singlePageDisableKey = ["lanDebug", "router", "worklet"],
  launchOption = wx.getLaunchOptionsSync ? wx.getLaunchOptionsSync() : null;

function isWxKey(e) {
  return (!launchOption || 1154 !== launchOption.scene || !singlePageDisableKey.includes(e)) && (objectKeys.indexOf(e) > -1 || "function" == typeof wx[e])
}

function initWx() {
  let e = wx;
  "undefined" != typeof globalThis && globalThis.wx && wx !== globalThis.wx && (e = globalThis.wx);
  const t = {};
  for (const n in e) isWxKey(n) && (t[n] = e[n]);
  return "undefined" != typeof globalThis && (globalThis.wx = t), t
}
const mocks$1 = ["__route__", "__wxExparserNodeId__", "__wxWebviewId__"],
  getProvider = initGetProvider({
    oauth: ["weixin"],
    share: ["weixin"],
    payment: ["wxpay"],
    push: ["weixin"]
  });

function initComponentMocks(e) {
  const t = Object.create(null);
  return mocks$1.forEach((n => {
    t[n] = e[n]
  })), t
}

function createSelectorQuery() {
  const e = wx$2.createSelectorQuery(),
    t = e.in;
  return e.in = function (e) {
    return t.call(this, initComponentMocks(e))
  }, e
}
const wx$2 = initWx();
let baseInfo = wx$2.getAppBaseInfo && wx$2.getAppBaseInfo();
baseInfo || (baseInfo = wx$2.getSystemInfoSync());
const host = baseInfo ? baseInfo.host : null,
  shareVideoMessage = host && "SAAASDK" === host.env ? wx$2.miniapp.shareVideoMessage : wx$2.shareVideoMessage;
var shims = Object.freeze({
  __proto__: null,
  createSelectorQuery: createSelectorQuery,
  getProvider: getProvider,
  shareVideoMessage: shareVideoMessage
});
const compressImage = {
  args(e, t) {
    e.compressedHeight && !t.compressHeight && (t.compressHeight = e.compressedHeight), e.compressedWidth && !t.compressWidth && (t.compressWidth = e.compressedWidth)
  }
};
var protocols = Object.freeze({
  __proto__: null,
  compressImage: compressImage,
  getAppAuthorizeSetting: getAppAuthorizeSetting,
  getAppBaseInfo: getAppBaseInfo,
  getDeviceInfo: getDeviceInfo,
  getSystemInfo: getSystemInfo,
  getSystemInfoSync: getSystemInfoSync,
  getWindowInfo: getWindowInfo,
  previewImage: previewImage,
  redirectTo: redirectTo,
  showActionSheet: showActionSheet
});
const wx$1 = initWx();
var index = initUni(shims, protocols, wx$1);
let activeEffectScope;
class EffectScope {
  constructor(e = !1) {
    this.detached = e, this._active = !0, this.effects = [], this.cleanups = [], this.parent = activeEffectScope, !e && activeEffectScope && (this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1)
  }
  get active() {
    return this._active
  }
  run(e) {
    if (this._active) {
      const t = activeEffectScope;
      try {
        return activeEffectScope = this, e()
      } finally {
        activeEffectScope = t
      }
    }
  }
  on() {
    activeEffectScope = this
  }
  off() {
    activeEffectScope = this.parent
  }
  stop(e) {
    if (this._active) {
      let t, n;
      for (t = 0, n = this.effects.length; t < n; t++) this.effects[t].stop();
      for (t = 0, n = this.cleanups.length; t < n; t++) this.cleanups[t]();
      if (this.scopes)
        for (t = 0, n = this.scopes.length; t < n; t++) this.scopes[t].stop(!0);
      if (!this.detached && this.parent && !e) {
        const e = this.parent.scopes.pop();
        e && e !== this && (this.parent.scopes[this.index] = e, e.index = this.index)
      }
      this.parent = void 0, this._active = !1
    }
  }
}

function effectScope(e) {
  return new EffectScope(e)
}

function recordEffectScope(e, t = activeEffectScope) {
  t && t.active && t.effects.push(e)
}

function getCurrentScope() {
  return activeEffectScope
}

function onScopeDispose(e) {
  activeEffectScope && activeEffectScope.cleanups.push(e)
}
const createDep = e => {
    const t = new Set(e);
    return t.w = 0, t.n = 0, t
  },
  wasTracked = e => (e.w & trackOpBit) > 0,
  newTracked = e => (e.n & trackOpBit) > 0,
  initDepMarkers = ({
    deps: e
  }) => {
    if (e.length)
      for (let t = 0; t < e.length; t++) e[t].w |= trackOpBit
  },
  finalizeDepMarkers = e => {
    const {
      deps: t
    } = e;
    if (t.length) {
      let n = 0;
      for (let o = 0; o < t.length; o++) {
        const r = t[o];
        wasTracked(r) && !newTracked(r) ? r.delete(e) : t[n++] = r, r.w &= ~trackOpBit, r.n &= ~trackOpBit
      }
      t.length = n
    }
  },
  targetMap = new WeakMap;
let effectTrackDepth = 0,
  trackOpBit = 1;
const maxMarkerBits = 30;
let activeEffect;
const ITERATE_KEY = Symbol(""),
  MAP_KEY_ITERATE_KEY = Symbol("");
class ReactiveEffect {
  constructor(e, t = null, n) {
    this.fn = e, this.scheduler = t, this.active = !0, this.deps = [], this.parent = void 0, recordEffectScope(this, n)
  }
  run() {
    if (!this.active) return this.fn();
    let e = activeEffect,
      t = shouldTrack;
    for (; e;) {
      if (e === this) return;
      e = e.parent
    }
    try {
      return this.parent = activeEffect, activeEffect = this, shouldTrack = !0, trackOpBit = 1 << ++effectTrackDepth, effectTrackDepth <= maxMarkerBits ? initDepMarkers(this) : cleanupEffect(this), this.fn()
    } finally {
      effectTrackDepth <= maxMarkerBits && finalizeDepMarkers(this), trackOpBit = 1 << --effectTrackDepth, activeEffect = this.parent, shouldTrack = t, this.parent = void 0, this.deferStop && this.stop()
    }
  }
  stop() {
    activeEffect === this ? this.deferStop = !0 : this.active && (cleanupEffect(this), this.onStop && this.onStop(), this.active = !1)
  }
}

function cleanupEffect(e) {
  const {
    deps: t
  } = e;
  if (t.length) {
    for (let n = 0; n < t.length; n++) t[n].delete(e);
    t.length = 0
  }
}
let shouldTrack = !0;
const trackStack = [];

function pauseTracking() {
  trackStack.push(shouldTrack), shouldTrack = !1
}

function resetTracking() {
  const e = trackStack.pop();
  shouldTrack = void 0 === e || e
}

function track(e, t, n) {
  if (shouldTrack && activeEffect) {
    let t = targetMap.get(e);
    t || targetMap.set(e, t = new Map);
    let o = t.get(n);
    o || t.set(n, o = createDep()), trackEffects(o)
  }
}

function trackEffects(e, t) {
  let n = !1;
  effectTrackDepth <= maxMarkerBits ? newTracked(e) || (e.n |= trackOpBit, n = !wasTracked(e)) : n = !e.has(activeEffect), n && (e.add(activeEffect), activeEffect.deps.push(e))
}

function trigger(e, t, n, o, r, i) {
  const a = targetMap.get(e);
  if (!a) return;
  let s = [];
  if ("clear" === t) s = [...a.values()];
  else if ("length" === n && isArray$1(e)) {
    const e = Number(o);
    a.forEach(((t, n) => {
      ("length" === n || n >= e) && s.push(t)
    }))
  } else switch (void 0 !== n && s.push(a.get(n)), t) {
    case "add":
      isArray$1(e) ? isIntegerKey(n) && s.push(a.get("length")) : (s.push(a.get(ITERATE_KEY)), isMap(e) && s.push(a.get(MAP_KEY_ITERATE_KEY)));
      break;
    case "delete":
      isArray$1(e) || (s.push(a.get(ITERATE_KEY)), isMap(e) && s.push(a.get(MAP_KEY_ITERATE_KEY)));
      break;
    case "set":
      isMap(e) && s.push(a.get(ITERATE_KEY))
  }
  if (1 === s.length) s[0] && triggerEffects(s[0]);
  else {
    const e = [];
    for (const t of s) t && e.push(...t);
    triggerEffects(createDep(e))
  }
}

function triggerEffects(e, t) {
  const n = isArray$1(e) ? e : [...e];
  for (const o of n) o.computed && triggerEffect(o);
  for (const o of n) o.computed || triggerEffect(o)
}

function triggerEffect(e, t) {
  (e !== activeEffect || e.allowRecurse) && (e.scheduler ? e.scheduler() : e.run())
}

function getDepFromReactive(e, t) {
  var n;
  return null === (n = targetMap.get(e)) || void 0 === n ? void 0 : n.get(t)
}
const isNonTrackableKeys = makeMap("__proto__,__v_isRef,__isVue"),
  builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).filter((e => "arguments" !== e && "caller" !== e)).map((e => Symbol[e])).filter(isSymbol)),
  get$1$1 = createGetter(),
  shallowGet = createGetter(!1, !0),
  readonlyGet = createGetter(!0),
  arrayInstrumentations = createArrayInstrumentations();

function createArrayInstrumentations() {
  const e = {};
  return ["includes", "indexOf", "lastIndexOf"].forEach((t => {
    e[t] = function (...e) {
      const n = toRaw(this);
      for (let t = 0, r = this.length; t < r; t++) track(n, "get", t + "");
      const o = n[t](...e);
      return -1 === o || !1 === o ? n[t](...e.map(toRaw)) : o
    }
  })), ["push", "pop", "shift", "unshift", "splice"].forEach((t => {
    e[t] = function (...e) {
      pauseTracking();
      const n = toRaw(this)[t].apply(this, e);
      return resetTracking(), n
    }
  })), e
}

function hasOwnProperty(e) {
  const t = toRaw(this);
  return track(t, "has", e), t.hasOwnProperty(e)
}

function createGetter(e = !1, t = !1) {
  return function (n, o, r) {
    if ("__v_isReactive" === o) return !e;
    if ("__v_isReadonly" === o) return e;
    if ("__v_isShallow" === o) return t;
    if ("__v_raw" === o && r === (e ? t ? shallowReadonlyMap : readonlyMap : t ? shallowReactiveMap : reactiveMap).get(n)) return n;
    const i = isArray$1(n);
    if (!e) {
      if (i && hasOwn(arrayInstrumentations, o)) return Reflect.get(arrayInstrumentations, o, r);
      if ("hasOwnProperty" === o) return hasOwnProperty
    }
    const a = Reflect.get(n, o, r);
    return (isSymbol(o) ? builtInSymbols.has(o) : isNonTrackableKeys(o)) ? a : (e || track(n, "get", o), t ? a : isRef(a) ? i && isIntegerKey(o) ? a : a.value : isObject$1(a) ? e ? readonly(a) : reactive(a) : a)
  }
}
const set$1$1 = createSetter(),
  shallowSet = createSetter(!0);

function createSetter(e = !1) {
  return function (t, n, o, r) {
    let i = t[n];
    if (isReadonly(i) && isRef(i) && !isRef(o)) return !1;
    if (!e && (isShallow(o) || isReadonly(o) || (i = toRaw(i), o = toRaw(o)), !isArray$1(t) && isRef(i) && !isRef(o))) return i.value = o, !0;
    const a = isArray$1(t) && isIntegerKey(n) ? Number(n) < t.length : hasOwn(t, n),
      s = Reflect.set(t, n, o, r);
    return t === toRaw(r) && (a ? hasChanged(o, i) && trigger(t, "set", n, o) : trigger(t, "add", n, o)), s
  }
}

function deleteProperty(e, t) {
  const n = hasOwn(e, t);
  e[t];
  const o = Reflect.deleteProperty(e, t);
  return o && n && trigger(e, "delete", t, void 0), o
}

function has$1(e, t) {
  const n = Reflect.has(e, t);
  return isSymbol(t) && builtInSymbols.has(t) || track(e, "has", t), n
}

function ownKeys(e) {
  return track(e, "iterate", isArray$1(e) ? "length" : ITERATE_KEY), Reflect.ownKeys(e)
}
const mutableHandlers = {
    get: get$1$1,
    set: set$1$1,
    deleteProperty: deleteProperty,
    has: has$1,
    ownKeys: ownKeys
  },
  readonlyHandlers = {
    get: readonlyGet,
    set: (e, t) => !0,
    deleteProperty: (e, t) => !0
  },
  shallowReactiveHandlers = extend$1({}, mutableHandlers, {
    get: shallowGet,
    set: shallowSet
  }),
  toShallow = e => e,
  getProto = e => Reflect.getPrototypeOf(e);

function get$3(e, t, n = !1, o = !1) {
  const r = toRaw(e = e.__v_raw),
    i = toRaw(t);
  n || (t !== i && track(r, "get", t), track(r, "get", i));
  const {
    has: a
  } = getProto(r), s = o ? toShallow : n ? toReadonly : toReactive;
  return a.call(r, t) ? s(e.get(t)) : a.call(r, i) ? s(e.get(i)) : void(e !== r && e.get(t))
}

function has(e, t = !1) {
  const n = this.__v_raw,
    o = toRaw(n),
    r = toRaw(e);
  return t || (e !== r && track(o, "has", e), track(o, "has", r)), e === r ? n.has(e) : n.has(e) || n.has(r)
}

function size(e, t = !1) {
  return e = e.__v_raw, !t && track(toRaw(e), "iterate", ITERATE_KEY), Reflect.get(e, "size", e)
}

function add$2(e) {
  e = toRaw(e);
  const t = toRaw(this);
  return getProto(t).has.call(t, e) || (t.add(e), trigger(t, "add", e, e)), this
}

function set$2(e, t) {
  t = toRaw(t);
  const n = toRaw(this),
    {
      has: o,
      get: r
    } = getProto(n);
  let i = o.call(n, e);
  i || (e = toRaw(e), i = o.call(n, e));
  const a = r.call(n, e);
  return n.set(e, t), i ? hasChanged(t, a) && trigger(n, "set", e, t) : trigger(n, "add", e, t), this
}

function deleteEntry(e) {
  const t = toRaw(this),
    {
      has: n,
      get: o
    } = getProto(t);
  let r = n.call(t, e);
  r || (e = toRaw(e), r = n.call(t, e)), o && o.call(t, e);
  const i = t.delete(e);
  return r && trigger(t, "delete", e, void 0), i
}

function clear() {
  const e = toRaw(this),
    t = 0 !== e.size,
    n = e.clear();
  return t && trigger(e, "clear", void 0, void 0), n
}

function createForEach(e, t) {
  return function (n, o) {
    const r = this,
      i = r.__v_raw,
      a = toRaw(i),
      s = t ? toShallow : e ? toReadonly : toReactive;
    return !e && track(a, "iterate", ITERATE_KEY), i.forEach(((e, t) => n.call(o, s(e), s(t), r)))
  }
}

function createIterableMethod(e, t, n) {
  return function (...o) {
    const r = this.__v_raw,
      i = toRaw(r),
      a = isMap(i),
      s = "entries" === e || e === Symbol.iterator && a,
      c = "keys" === e && a,
      l = r[e](...o),
      u = n ? toShallow : t ? toReadonly : toReactive;
    return !t && track(i, "iterate", c ? MAP_KEY_ITERATE_KEY : ITERATE_KEY), {
      next() {
        const {
          value: e,
          done: t
        } = l.next();
        return t ? {
          value: e,
          done: t
        } : {
          value: s ? [u(e[0]), u(e[1])] : u(e),
          done: t
        }
      },
      [Symbol.iterator]() {
        return this
      }
    }
  }
}

function createReadonlyMethod(e) {
  return function (...t) {
    return "delete" !== e && this
  }
}

function createInstrumentations() {
  const e = {
      get(e) {
        return get$3(this, e)
      },
      get size() {
        return size(this)
      },
      has: has,
      add: add$2,
      set: set$2,
      delete: deleteEntry,
      clear: clear,
      forEach: createForEach(!1, !1)
    },
    t = {
      get(e) {
        return get$3(this, e, !1, !0)
      },
      get size() {
        return size(this)
      },
      has: has,
      add: add$2,
      set: set$2,
      delete: deleteEntry,
      clear: clear,
      forEach: createForEach(!1, !0)
    },
    n = {
      get(e) {
        return get$3(this, e, !0)
      },
      get size() {
        return size(this, !0)
      },
      has(e) {
        return has.call(this, e, !0)
      },
      add: createReadonlyMethod("add"),
      set: createReadonlyMethod("set"),
      delete: createReadonlyMethod("delete"),
      clear: createReadonlyMethod("clear"),
      forEach: createForEach(!0, !1)
    },
    o = {
      get(e) {
        return get$3(this, e, !0, !0)
      },
      get size() {
        return size(this, !0)
      },
      has(e) {
        return has.call(this, e, !0)
      },
      add: createReadonlyMethod("add"),
      set: createReadonlyMethod("set"),
      delete: createReadonlyMethod("delete"),
      clear: createReadonlyMethod("clear"),
      forEach: createForEach(!0, !0)
    };
  return ["keys", "values", "entries", Symbol.iterator].forEach((r => {
    e[r] = createIterableMethod(r, !1, !1), n[r] = createIterableMethod(r, !0, !1), t[r] = createIterableMethod(r, !1, !0), o[r] = createIterableMethod(r, !0, !0)
  })), [e, n, t, o]
}
const [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = createInstrumentations();

function createInstrumentationGetter(e, t) {
  const n = t ? e ? shallowReadonlyInstrumentations : shallowInstrumentations : e ? readonlyInstrumentations : mutableInstrumentations;
  return (t, o, r) => "__v_isReactive" === o ? !e : "__v_isReadonly" === o ? e : "__v_raw" === o ? t : Reflect.get(hasOwn(n, o) && o in t ? n : t, o, r)
}
const mutableCollectionHandlers = {
    get: createInstrumentationGetter(!1, !1)
  },
  shallowCollectionHandlers = {
    get: createInstrumentationGetter(!1, !0)
  },
  readonlyCollectionHandlers = {
    get: createInstrumentationGetter(!0, !1)
  },
  reactiveMap = new WeakMap,
  shallowReactiveMap = new WeakMap,
  readonlyMap = new WeakMap,
  shallowReadonlyMap = new WeakMap;

function targetTypeMap(e) {
  switch (e) {
    case "Object":
    case "Array":
      return 1;
    case "Map":
    case "Set":
    case "WeakMap":
    case "WeakSet":
      return 2;
    default:
      return 0
  }
}

function getTargetType(e) {
  return e.__v_skip || !Object.isExtensible(e) ? 0 : targetTypeMap(toRawType(e))
}

function reactive(e) {
  return isReadonly(e) ? e : createReactiveObject(e, !1, mutableHandlers, mutableCollectionHandlers, reactiveMap)
}

function shallowReactive(e) {
  return createReactiveObject(e, !1, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap)
}

function readonly(e) {
  return createReactiveObject(e, !0, readonlyHandlers, readonlyCollectionHandlers, readonlyMap)
}

function createReactiveObject(e, t, n, o, r) {
  if (!isObject$1(e)) return e;
  if (e.__v_raw && (!t || !e.__v_isReactive)) return e;
  const i = r.get(e);
  if (i) return i;
  const a = getTargetType(e);
  if (0 === a) return e;
  const s = new Proxy(e, 2 === a ? o : n);
  return r.set(e, s), s
}

function isReactive(e) {
  return isReadonly(e) ? isReactive(e.__v_raw) : !(!e || !e.__v_isReactive)
}

function isReadonly(e) {
  return !(!e || !e.__v_isReadonly)
}

function isShallow(e) {
  return !(!e || !e.__v_isShallow)
}

function isProxy(e) {
  return isReactive(e) || isReadonly(e)
}

function toRaw(e) {
  const t = e && e.__v_raw;
  return t ? toRaw(t) : e
}

function markRaw(e) {
  return def(e, "__v_skip", !0), e
}
const toReactive = e => isObject$1(e) ? reactive(e) : e,
  toReadonly = e => isObject$1(e) ? readonly(e) : e;

function trackRefValue(e) {
  shouldTrack && activeEffect && trackEffects((e = toRaw(e)).dep || (e.dep = createDep()))
}

function triggerRefValue(e, t) {
  const n = (e = toRaw(e)).dep;
  n && triggerEffects(n)
}

function isRef(e) {
  return !(!e || !0 !== e.__v_isRef)
}

function ref(e) {
  return createRef(e, !1)
}

function createRef(e, t) {
  return isRef(e) ? e : new RefImpl(e, t)
}
class RefImpl {
  constructor(e, t) {
    this.__v_isShallow = t, this.dep = void 0, this.__v_isRef = !0, this._rawValue = t ? e : toRaw(e), this._value = t ? e : toReactive(e)
  }
  get value() {
    return trackRefValue(this), this._value
  }
  set value(e) {
    const t = this.__v_isShallow || isShallow(e) || isReadonly(e);
    e = t ? e : toRaw(e), hasChanged(e, this._rawValue) && (this._rawValue = e, this._value = t ? e : toReactive(e), triggerRefValue(this))
  }
}

function unref(e) {
  return isRef(e) ? e.value : e
}
const shallowUnwrapHandlers = {
  get: (e, t, n) => unref(Reflect.get(e, t, n)),
  set: (e, t, n, o) => {
    const r = e[t];
    return isRef(r) && !isRef(n) ? (r.value = n, !0) : Reflect.set(e, t, n, o)
  }
};

function proxyRefs(e) {
  return isReactive(e) ? e : new Proxy(e, shallowUnwrapHandlers)
}

function toRefs(e) {
  const t = isArray$1(e) ? new Array(e.length) : {};
  for (const n in e) t[n] = toRef(e, n);
  return t
}
class ObjectRefImpl {
  constructor(e, t, n) {
    this._object = e, this._key = t, this._defaultValue = n, this.__v_isRef = !0
  }
  get value() {
    const e = this._object[this._key];
    return void 0 === e ? this._defaultValue : e
  }
  set value(e) {
    this._object[this._key] = e
  }
  get dep() {
    return getDepFromReactive(toRaw(this._object), this._key)
  }
}

function toRef(e, t, n) {
  const o = e[t];
  return isRef(o) ? o : new ObjectRefImpl(e, t, n)
}
var _a;
class ComputedRefImpl {
  constructor(e, t, n, o) {
    this._setter = t, this.dep = void 0, this.__v_isRef = !0, this[_a] = !1, this._dirty = !0, this.effect = new ReactiveEffect(e, (() => {
      this._dirty || (this._dirty = !0, triggerRefValue(this))
    })), this.effect.computed = this, this.effect.active = this._cacheable = !o, this.__v_isReadonly = n
  }
  get value() {
    const e = toRaw(this);
    return trackRefValue(e), !e._dirty && e._cacheable || (e._dirty = !1, e._value = e.effect.run()), e._value
  }
  set value(e) {
    this._setter(e)
  }
}

function computed$1(e, t, n = !1) {
  let o, r;
  const i = isFunction$1(e);
  i ? (o = e, r = NOOP) : (o = e.get, r = e.set);
  return new ComputedRefImpl(o, r, i || !r, n)
}

function callWithErrorHandling(e, t, n, o) {
  let r;
  try {
    r = o ? e(...o) : e()
  } catch (i) {
    handleError(i, t, n)
  }
  return r
}

function callWithAsyncErrorHandling(e, t, n, o) {
  if (isFunction$1(e)) {
    const r = callWithErrorHandling(e, t, n, o);
    return r && isPromise(r) && r.catch((e => {
      handleError(e, t, n)
    })), r
  }
  const r = [];
  for (let i = 0; i < e.length; i++) r.push(callWithAsyncErrorHandling(e[i], t, n, o));
  return r
}

function handleError(e, t, n, o = !0) {
  const r = t ? t.vnode : null;
  if (t) {
    let o = t.parent;
    const r = t.proxy,
      i = n;
    for (; o;) {
      const t = o.ec;
      if (t)
        for (let n = 0; n < t.length; n++)
          if (!1 === t[n](e, r, i)) return;
      o = o.parent
    }
    const a = t.appContext.config.errorHandler;
    if (a) return void callWithErrorHandling(a, null, 10, [e, r, i])
  }
  logError(e, n, r, o)
}

function logError(e, t, n, o = !0) {
  console.error(e)
}
_a = "__v_isReadonly";
let isFlushing = !1,
  isFlushPending = !1;
const queue = [];
let flushIndex = 0;
const pendingPostFlushCbs = [];
let activePostFlushCbs = null,
  postFlushIndex = 0;
const resolvedPromise = Promise.resolve();
let currentFlushPromise = null;

function nextTick$1(e) {
  const t = currentFlushPromise || resolvedPromise;
  return e ? t.then(this ? e.bind(this) : e) : t
}

function findInsertionIndex(e) {
  let t = flushIndex + 1,
    n = queue.length;
  for (; t < n;) {
    const o = t + n >>> 1;
    getId(queue[o]) < e ? t = o + 1 : n = o
  }
  return t
}

function queueJob(e) {
  queue.length && queue.includes(e, isFlushing && e.allowRecurse ? flushIndex + 1 : flushIndex) || (null == e.id ? queue.push(e) : queue.splice(findInsertionIndex(e.id), 0, e), queueFlush())
}

function queueFlush() {
  isFlushing || isFlushPending || (isFlushPending = !0, currentFlushPromise = resolvedPromise.then(flushJobs))
}

function hasQueueJob(e) {
  return queue.indexOf(e) > -1
}

function invalidateJob(e) {
  const t = queue.indexOf(e);
  t > flushIndex && queue.splice(t, 1)
}

function queuePostFlushCb(e) {
  isArray$1(e) ? pendingPostFlushCbs.push(...e) : activePostFlushCbs && activePostFlushCbs.includes(e, e.allowRecurse ? postFlushIndex + 1 : postFlushIndex) || pendingPostFlushCbs.push(e), queueFlush()
}

function flushPreFlushCbs(e, t = (isFlushing ? flushIndex + 1 : 0)) {
  for (; t < queue.length; t++) {
    const e = queue[t];
    e && e.pre && (queue.splice(t, 1), t--, e())
  }
}

function flushPostFlushCbs(e) {
  if (pendingPostFlushCbs.length) {
    const e = [...new Set(pendingPostFlushCbs)];
    if (pendingPostFlushCbs.length = 0, activePostFlushCbs) return void activePostFlushCbs.push(...e);
    for (activePostFlushCbs = e, activePostFlushCbs.sort(((e, t) => getId(e) - getId(t))), postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) activePostFlushCbs[postFlushIndex]();
    activePostFlushCbs = null, postFlushIndex = 0
  }
}
const getId = e => null == e.id ? 1 / 0 : e.id,
  comparator = (e, t) => {
    const n = getId(e) - getId(t);
    if (0 === n) {
      if (e.pre && !t.pre) return -1;
      if (t.pre && !e.pre) return 1
    }
    return n
  };

function flushJobs(e) {
  isFlushPending = !1, isFlushing = !0, queue.sort(comparator);
  try {
    for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
      const e = queue[flushIndex];
      e && !1 !== e.active && callWithErrorHandling(e, null, 14)
    }
  } finally {
    flushIndex = 0, queue.length = 0, flushPostFlushCbs(), isFlushing = !1, currentFlushPromise = null, (queue.length || pendingPostFlushCbs.length) && flushJobs()
  }
}

function emit(e, t, ...n) {
  if (e.isUnmounted) return;
  const o = e.vnode.props || EMPTY_OBJ;
  let r = n;
  const i = t.startsWith("update:"),
    a = i && t.slice(7);
  if (a && a in o) {
    const e = `${"modelValue"===a?"model":a}Modifiers`,
      {
        number: t,
        trim: i
      } = o[e] || EMPTY_OBJ;
    i && (r = n.map((e => isString$1(e) ? e.trim() : e))), t && (r = n.map(looseToNumber))
  }
  let s, c = o[s = toHandlerKey(t)] || o[s = toHandlerKey(camelize(t))];
  !c && i && (c = o[s = toHandlerKey(hyphenate(t))]), c && callWithAsyncErrorHandling(c, e, 6, r);
  const l = o[s + "Once"];
  if (l) {
    if (e.emitted) {
      if (e.emitted[s]) return
    } else e.emitted = {};
    e.emitted[s] = !0, callWithAsyncErrorHandling(l, e, 6, r)
  }
}

function normalizeEmitsOptions(e, t, n = !1) {
  const o = t.emitsCache,
    r = o.get(e);
  if (void 0 !== r) return r;
  const i = e.emits;
  let a = {},
    s = !1;
  if (!isFunction$1(e)) {
    const o = e => {
      const n = normalizeEmitsOptions(e, t, !0);
      n && (s = !0, extend$1(a, n))
    };
    !n && t.mixins.length && t.mixins.forEach(o), e.extends && o(e.extends), e.mixins && e.mixins.forEach(o)
  }
  return i || s ? (isArray$1(i) ? i.forEach((e => a[e] = null)) : extend$1(a, i), isObject$1(e) && o.set(e, a), a) : (isObject$1(e) && o.set(e, null), null)
}

function isEmitListener(e, t) {
  return !(!e || !isOn(t)) && (t = t.slice(2).replace(/Once$/, ""), hasOwn(e, t[0].toLowerCase() + t.slice(1)) || hasOwn(e, hyphenate(t)) || hasOwn(e, t))
}
let currentRenderingInstance = null;

function setCurrentRenderingInstance(e) {
  const t = currentRenderingInstance;
  return currentRenderingInstance = e, e && e.type.__scopeId, t
}

function provide(e, t) {
  if (currentInstance) {
    let n = currentInstance.provides;
    const o = currentInstance.parent && currentInstance.parent.provides;
    o === n && (n = currentInstance.provides = Object.create(o)), n[e] = t, "app" === currentInstance.type.mpType && currentInstance.appContext.app.provide(e, t)
  } else;
}

function inject(e, t, n = !1) {
  const o = currentInstance || currentRenderingInstance;
  if (o) {
    const r = null == o.parent ? o.vnode.appContext && o.vnode.appContext.provides : o.parent.provides;
    if (r && e in r) return r[e];
    if (arguments.length > 1) return n && isFunction$1(t) ? t.call(o.proxy) : t
  }
}

function watchEffect(e, t) {
  return doWatch(e, null, t)
}
const INITIAL_WATCHER_VALUE = {};

function watch(e, t, n) {
  return doWatch(e, t, n)
}

function doWatch(e, t, {
  immediate: n,
  deep: o,
  flush: r,
  onTrack: i,
  onTrigger: a
} = EMPTY_OBJ) {
  const s = getCurrentScope() === (null == currentInstance ? void 0 : currentInstance.scope) ? currentInstance : null;
  let c, l, u = !1,
    d = !1;
  if (isRef(e) ? (c = () => e.value, u = isShallow(e)) : isReactive(e) ? (c = () => e, o = !0) : isArray$1(e) ? (d = !0, u = e.some((e => isReactive(e) || isShallow(e))), c = () => e.map((e => isRef(e) ? e.value : isReactive(e) ? traverse(e) : isFunction$1(e) ? callWithErrorHandling(e, s, 2) : void 0))) : c = isFunction$1(e) ? t ? () => callWithErrorHandling(e, s, 2) : () => {
      if (!s || !s.isUnmounted) return l && l(), callWithAsyncErrorHandling(e, s, 3, [p])
    } : NOOP, t && o) {
    const e = c;
    c = () => traverse(e())
  }
  let p = e => {
      l = g.onStop = () => {
        callWithErrorHandling(e, s, 4)
      }
    },
    f = d ? new Array(e.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
  const h = () => {
    if (g.active)
      if (t) {
        const e = g.run();
        (o || u || (d ? e.some(((e, t) => hasChanged(e, f[t]))) : hasChanged(e, f))) && (l && l(), callWithAsyncErrorHandling(t, s, 3, [e, f === INITIAL_WATCHER_VALUE ? void 0 : d && f[0] === INITIAL_WATCHER_VALUE ? [] : f, p]), f = e)
      } else g.run()
  };
  let m;
  h.allowRecurse = !!t, "sync" === r ? m = h : "post" === r ? m = () => queuePostRenderEffect$1(h, s && s.suspense) : (h.pre = !0, s && (h.id = s.uid), m = () => queueJob(h));
  const g = new ReactiveEffect(c, m);
  t ? n ? h() : f = g.run() : "post" === r ? queuePostRenderEffect$1(g.run.bind(g), s && s.suspense) : g.run();
  return () => {
    g.stop(), s && s.scope && remove(s.scope.effects, g)
  }
}

function instanceWatch(e, t, n) {
  const o = this.proxy,
    r = isString$1(e) ? e.includes(".") ? createPathGetter(o, e) : () => o[e] : e.bind(o, o);
  let i;
  isFunction$1(t) ? i = t : (i = t.handler, n = t);
  const a = currentInstance;
  setCurrentInstance(this);
  const s = doWatch(r, i.bind(o), n);
  return a ? setCurrentInstance(a) : unsetCurrentInstance(), s
}

function createPathGetter(e, t) {
  const n = t.split(".");
  return () => {
    let t = e;
    for (let e = 0; e < n.length && t; e++) t = t[n[e]];
    return t
  }
}

function traverse(e, t) {
  if (!isObject$1(e) || e.__v_skip) return e;
  if ((t = t || new Set).has(e)) return e;
  if (t.add(e), isRef(e)) traverse(e.value, t);
  else if (isArray$1(e))
    for (let n = 0; n < e.length; n++) traverse(e[n], t);
  else if (isSet(e) || isMap(e)) e.forEach((e => {
    traverse(e, t)
  }));
  else if (isPlainObject$1(e))
    for (const n in e) traverse(e[n], t);
  return e
}
const isKeepAlive = e => e.type.__isKeepAlive;

function onActivated(e, t) {
  registerKeepAliveHook(e, "a", t)
}

function onDeactivated(e, t) {
  registerKeepAliveHook(e, "da", t)
}

function registerKeepAliveHook(e, t, n = currentInstance) {
  const o = e.__wdc || (e.__wdc = () => {
    let t = n;
    for (; t;) {
      if (t.isDeactivated) return;
      t = t.parent
    }
    return e()
  });
  if (injectHook(t, o, n), n) {
    let e = n.parent;
    for (; e && e.parent;) isKeepAlive(e.parent.vnode) && injectToKeepAliveRoot(o, t, n, e), e = e.parent
  }
}

function injectToKeepAliveRoot(e, t, n, o) {
  const r = injectHook(t, e, o, !0);
  onUnmounted((() => {
    remove(o[t], r)
  }), n)
}

function injectHook(e, t, n = currentInstance, o = !1) {
  if (n) {
    isRootHook(e) && (n = n.root);
    const r = n[e] || (n[e] = []),
      i = t.__weh || (t.__weh = (...o) => {
        if (n.isUnmounted) return;
        pauseTracking(), setCurrentInstance(n);
        const r = callWithAsyncErrorHandling(t, n, e, o);
        return unsetCurrentInstance(), resetTracking(), r
      });
    return o ? r.unshift(i) : r.push(i), i
  }
}
const createHook$1 = e => (t, n = currentInstance) => (!isInSSRComponentSetup || "sp" === e) && injectHook(e, ((...e) => t(...e)), n),
  onBeforeMount = createHook$1("bm"),
  onMounted = createHook$1("m"),
  onBeforeUpdate = createHook$1("bu"),
  onUpdated = createHook$1("u"),
  onBeforeUnmount = createHook$1("bum"),
  onUnmounted = createHook$1("um"),
  onServerPrefetch = createHook$1("sp"),
  onRenderTriggered = createHook$1("rtg"),
  onRenderTracked = createHook$1("rtc");

function onErrorCaptured(e, t = currentInstance) {
  injectHook("ec", e, t)
}
const getPublicInstance = e => e ? isStatefulComponent(e) ? getExposeProxy(e) || e.proxy : getPublicInstance(e.parent) : null,
  publicPropertiesMap = extend$1(Object.create(null), {
    $: e => e,
    $el: e => e.__$el || (e.__$el = {}),
    $data: e => e.data,
    $props: e => e.props,
    $attrs: e => e.attrs,
    $slots: e => e.slots,
    $refs: e => e.refs,
    $parent: e => getPublicInstance(e.parent),
    $root: e => getPublicInstance(e.root),
    $emit: e => e.emit,
    $options: e => resolveMergedOptions(e),
    $forceUpdate: e => e.f || (e.f = () => queueJob(e.update)),
    $watch: e => instanceWatch.bind(e)
  }),
  hasSetupBinding = (e, t) => e !== EMPTY_OBJ && !e.__isScriptSetup && hasOwn(e, t),
  PublicInstanceProxyHandlers = {
    get({
      _: e
    }, t) {
      const {
        ctx: n,
        setupState: o,
        data: r,
        props: i,
        accessCache: a,
        type: s,
        appContext: c
      } = e;
      let l;
      if ("$" !== t[0]) {
        const s = a[t];
        if (void 0 !== s) switch (s) {
          case 1:
            return o[t];
          case 2:
            return r[t];
          case 4:
            return n[t];
          case 3:
            return i[t]
        } else {
          if (hasSetupBinding(o, t)) return a[t] = 1, o[t];
          if (r !== EMPTY_OBJ && hasOwn(r, t)) return a[t] = 2, r[t];
          if ((l = e.propsOptions[0]) && hasOwn(l, t)) return a[t] = 3, i[t];
          if (n !== EMPTY_OBJ && hasOwn(n, t)) return a[t] = 4, n[t];
          shouldCacheAccess && (a[t] = 0)
        }
      }
      const u = publicPropertiesMap[t];
      let d, p;
      return u ? ("$attrs" === t && track(e, "get", t), u(e)) : (d = s.__cssModules) && (d = d[t]) ? d : n !== EMPTY_OBJ && hasOwn(n, t) ? (a[t] = 4, n[t]) : (p = c.config.globalProperties, hasOwn(p, t) ? p[t] : void 0)
    },
    set({
      _: e
    }, t, n) {
      const {
        data: o,
        setupState: r,
        ctx: i
      } = e;
      return hasSetupBinding(r, t) ? (r[t] = n, !0) : o !== EMPTY_OBJ && hasOwn(o, t) ? (o[t] = n, !0) : !hasOwn(e.props, t) && (("$" !== t[0] || !(t.slice(1) in e)) && (i[t] = n, !0))
    },
    has({
      _: {
        data: e,
        setupState: t,
        accessCache: n,
        ctx: o,
        appContext: r,
        propsOptions: i
      }
    }, a) {
      let s;
      return !!n[a] || e !== EMPTY_OBJ && hasOwn(e, a) || hasSetupBinding(t, a) || (s = i[0]) && hasOwn(s, a) || hasOwn(o, a) || hasOwn(publicPropertiesMap, a) || hasOwn(r.config.globalProperties, a)
    },
    defineProperty(e, t, n) {
      return null != n.get ? e._.accessCache[t] = 0 : hasOwn(n, "value") && this.set(e, t, n.value, null), Reflect.defineProperty(e, t, n)
    }
  };
let shouldCacheAccess = !0;

function applyOptions$1(e) {
  const t = resolveMergedOptions(e),
    n = e.proxy,
    o = e.ctx;
  shouldCacheAccess = !1, t.beforeCreate && callHook$1(t.beforeCreate, e, "bc");
  const {
    data: r,
    computed: i,
    methods: a,
    watch: s,
    provide: c,
    inject: l,
    created: u,
    beforeMount: d,
    mounted: p,
    beforeUpdate: f,
    updated: h,
    activated: m,
    deactivated: g,
    beforeDestroy: y,
    beforeUnmount: v,
    destroyed: _,
    unmounted: x,
    render: k,
    renderTracked: b,
    renderTriggered: S,
    errorCaptured: O,
    serverPrefetch: C,
    expose: w,
    inheritAttrs: E,
    components: T,
    directives: A,
    filters: R
  } = t;
  if (l && resolveInjections(l, o, null, e.appContext.config.unwrapInjectedRef), a)
    for (const I in a) {
      const e = a[I];
      isFunction$1(e) && (o[I] = e.bind(n))
    }
  if (r) {
    const t = r.call(n, n);
    isObject$1(t) && (e.data = reactive(t))
  }
  if (shouldCacheAccess = !0, i)
    for (const I in i) {
      const e = i[I],
        t = isFunction$1(e) ? e.bind(n, n) : isFunction$1(e.get) ? e.get.bind(n, n) : NOOP,
        r = !isFunction$1(e) && isFunction$1(e.set) ? e.set.bind(n) : NOOP,
        a = computed({
          get: t,
          set: r
        });
      Object.defineProperty(o, I, {
        enumerable: !0,
        configurable: !0,
        get: () => a.value,
        set: e => a.value = e
      })
    }
  if (s)
    for (const I in s) createWatcher(s[I], o, n, I);
  if (c) {
    const e = isFunction$1(c) ? c.call(n) : c;
    Reflect.ownKeys(e).forEach((t => {
      provide(t, e[t])
    }))
  }

  function P(e, t) {
    isArray$1(t) ? t.forEach((t => e(t.bind(n)))) : t && e(t.bind(n))
  }
  if (u && callHook$1(u, e, "c"), P(onBeforeMount, d), P(onMounted, p), P(onBeforeUpdate, f), P(onUpdated, h), P(onActivated, m), P(onDeactivated, g), P(onErrorCaptured, O), P(onRenderTracked, b), P(onRenderTriggered, S), P(onBeforeUnmount, v), P(onUnmounted, x), P(onServerPrefetch, C), isArray$1(w))
    if (w.length) {
      const t = e.exposed || (e.exposed = {});
      w.forEach((e => {
        Object.defineProperty(t, e, {
          get: () => n[e],
          set: t => n[e] = t
        })
      }))
    } else e.exposed || (e.exposed = {});
  k && e.render === NOOP && (e.render = k), null != E && (e.inheritAttrs = E), T && (e.components = T), A && (e.directives = A), e.ctx.$onApplyOptions && e.ctx.$onApplyOptions(t, e, n)
}

function resolveInjections(e, t, n = NOOP, o = !1) {
  isArray$1(e) && (e = normalizeInject(e));
  for (const r in e) {
    const n = e[r];
    let i;
    i = isObject$1(n) ? "default" in n ? inject(n.from || r, n.default, !0) : inject(n.from || r) : inject(n), isRef(i) && o ? Object.defineProperty(t, r, {
      enumerable: !0,
      configurable: !0,
      get: () => i.value,
      set: e => i.value = e
    }) : t[r] = i
  }
}

function callHook$1(e, t, n) {
  callWithAsyncErrorHandling(isArray$1(e) ? e.map((e => e.bind(t.proxy))) : e.bind(t.proxy), t, n)
}

function createWatcher(e, t, n, o) {
  const r = o.includes(".") ? createPathGetter(n, o) : () => n[o];
  if (isString$1(e)) {
    const n = t[e];
    isFunction$1(n) && watch(r, n)
  } else if (isFunction$1(e)) watch(r, e.bind(n));
  else if (isObject$1(e))
    if (isArray$1(e)) e.forEach((e => createWatcher(e, t, n, o)));
    else {
      const o = isFunction$1(e.handler) ? e.handler.bind(n) : t[e.handler];
      isFunction$1(o) && watch(r, o, e)
    }
}

function resolveMergedOptions(e) {
  const t = e.type,
    {
      mixins: n,
      extends: o
    } = t,
    {
      mixins: r,
      optionsCache: i,
      config: {
        optionMergeStrategies: a
      }
    } = e.appContext,
    s = i.get(t);
  let c;
  return s ? c = s : r.length || n || o ? (c = {}, r.length && r.forEach((e => mergeOptions(c, e, a, !0))), mergeOptions(c, t, a)) : c = t, isObject$1(t) && i.set(t, c), c
}

function mergeOptions(e, t, n, o = !1) {
  const {
    mixins: r,
    extends: i
  } = t;
  i && mergeOptions(e, i, n, !0), r && r.forEach((t => mergeOptions(e, t, n, !0)));
  for (const a in t)
    if (o && "expose" === a);
    else {
      const o = internalOptionMergeStrats[a] || n && n[a];
      e[a] = o ? o(e[a], t[a]) : t[a]
    } return e
}
const internalOptionMergeStrats = {
  data: mergeDataFn,
  props: mergeObjectOptions,
  emits: mergeObjectOptions,
  methods: mergeObjectOptions,
  computed: mergeObjectOptions,
  beforeCreate: mergeAsArray$1,
  created: mergeAsArray$1,
  beforeMount: mergeAsArray$1,
  mounted: mergeAsArray$1,
  beforeUpdate: mergeAsArray$1,
  updated: mergeAsArray$1,
  beforeDestroy: mergeAsArray$1,
  beforeUnmount: mergeAsArray$1,
  destroyed: mergeAsArray$1,
  unmounted: mergeAsArray$1,
  activated: mergeAsArray$1,
  deactivated: mergeAsArray$1,
  errorCaptured: mergeAsArray$1,
  serverPrefetch: mergeAsArray$1,
  components: mergeObjectOptions,
  directives: mergeObjectOptions,
  watch: mergeWatchOptions,
  provide: mergeDataFn,
  inject: mergeInject
};

function mergeDataFn(e, t) {
  return t ? e ? function () {
    return extend$1(isFunction$1(e) ? e.call(this, this) : e, isFunction$1(t) ? t.call(this, this) : t)
  } : t : e
}

function mergeInject(e, t) {
  return mergeObjectOptions(normalizeInject(e), normalizeInject(t))
}

function normalizeInject(e) {
  if (isArray$1(e)) {
    const t = {};
    for (let n = 0; n < e.length; n++) t[e[n]] = e[n];
    return t
  }
  return e
}

function mergeAsArray$1(e, t) {
  return e ? [...new Set([].concat(e, t))] : t
}

function mergeObjectOptions(e, t) {
  return e ? extend$1(extend$1(Object.create(null), e), t) : t
}

function mergeWatchOptions(e, t) {
  if (!e) return t;
  if (!t) return e;
  const n = extend$1(Object.create(null), e);
  for (const o in t) n[o] = mergeAsArray$1(e[o], t[o]);
  return n
}

function initProps$1(e, t, n, o = !1) {
  const r = {},
    i = {};
  e.propsDefaults = Object.create(null), setFullProps(e, t, r, i);
  for (const a in e.propsOptions[0]) a in r || (r[a] = void 0);
  n ? e.props = o ? r : shallowReactive(r) : e.type.props ? e.props = r : e.props = i, e.attrs = i
}

function updateProps(e, t, n, o) {
  const {
    props: r,
    attrs: i,
    vnode: {
      patchFlag: a
    }
  } = e, s = toRaw(r), [c] = e.propsOptions;
  let l = !1;
  if (!(o || a > 0) || 16 & a) {
    let o;
    setFullProps(e, t, r, i) && (l = !0);
    for (const i in s) t && (hasOwn(t, i) || (o = hyphenate(i)) !== i && hasOwn(t, o)) || (c ? !n || void 0 === n[i] && void 0 === n[o] || (r[i] = resolvePropValue(c, s, i, void 0, e, !0)) : delete r[i]);
    if (i !== s)
      for (const e in i) t && hasOwn(t, e) || (delete i[e], l = !0)
  } else if (8 & a) {
    const n = e.vnode.dynamicProps;
    for (let o = 0; o < n.length; o++) {
      let a = n[o];
      if (isEmitListener(e.emitsOptions, a)) continue;
      const u = t[a];
      if (c)
        if (hasOwn(i, a)) u !== i[a] && (i[a] = u, l = !0);
        else {
          const t = camelize(a);
          r[t] = resolvePropValue(c, s, t, u, e, !1)
        }
      else u !== i[a] && (i[a] = u, l = !0)
    }
  }
  l && trigger(e, "set", "$attrs")
}

function setFullProps(e, t, n, o) {
  const [r, i] = e.propsOptions;
  let a, s = !1;
  if (t)
    for (let c in t) {
      if (isReservedProp(c)) continue;
      const l = t[c];
      let u;
      r && hasOwn(r, u = camelize(c)) ? i && i.includes(u) ? (a || (a = {}))[u] = l : n[u] = l : isEmitListener(e.emitsOptions, c) || c in o && l === o[c] || (o[c] = l, s = !0)
    }
  if (i) {
    const t = toRaw(n),
      o = a || EMPTY_OBJ;
    for (let a = 0; a < i.length; a++) {
      const s = i[a];
      n[s] = resolvePropValue(r, t, s, o[s], e, !hasOwn(o, s))
    }
  }
  return s
}

function resolvePropValue(e, t, n, o, r, i) {
  const a = e[n];
  if (null != a) {
    const e = hasOwn(a, "default");
    if (e && void 0 === o) {
      const e = a.default;
      if (a.type !== Function && isFunction$1(e)) {
        const {
          propsDefaults: i
        } = r;
        n in i ? o = i[n] : (setCurrentInstance(r), o = i[n] = e.call(null, t), unsetCurrentInstance())
      } else o = e
    }
    a[0] && (i && !e ? o = !1 : !a[1] || "" !== o && o !== hyphenate(n) || (o = !0))
  }
  return o
}

function normalizePropsOptions(e, t, n = !1) {
  const o = t.propsCache,
    r = o.get(e);
  if (r) return r;
  const i = e.props,
    a = {},
    s = [];
  let c = !1;
  if (!isFunction$1(e)) {
    const o = e => {
      c = !0;
      const [n, o] = normalizePropsOptions(e, t, !0);
      extend$1(a, n), o && s.push(...o)
    };
    !n && t.mixins.length && t.mixins.forEach(o), e.extends && o(e.extends), e.mixins && e.mixins.forEach(o)
  }
  if (!i && !c) return isObject$1(e) && o.set(e, EMPTY_ARR), EMPTY_ARR;
  if (isArray$1(i))
    for (let u = 0; u < i.length; u++) {
      const e = camelize(i[u]);
      validatePropName(e) && (a[e] = EMPTY_OBJ)
    } else if (i)
      for (const u in i) {
        const e = camelize(u);
        if (validatePropName(e)) {
          const t = i[u],
            n = a[e] = isArray$1(t) || isFunction$1(t) ? {
              type: t
            } : Object.assign({}, t);
          if (n) {
            const t = getTypeIndex(Boolean, n.type),
              o = getTypeIndex(String, n.type);
            n[0] = t > -1, n[1] = o < 0 || t < o, (t > -1 || hasOwn(n, "default")) && s.push(e)
          }
        }
      }
  const l = [a, s];
  return isObject$1(e) && o.set(e, l), l
}

function validatePropName(e) {
  return "$" !== e[0]
}

function getType(e) {
  const t = e && e.toString().match(/^\s*(function|class) (\w+)/);
  return t ? t[2] : null === e ? "null" : ""
}

function isSameType(e, t) {
  return getType(e) === getType(t)
}

function getTypeIndex(e, t) {
  return isArray$1(t) ? t.findIndex((t => isSameType(t, e))) : isFunction$1(t) && isSameType(t, e) ? 0 : -1
}

function createAppContext() {
  return {
    app: null,
    config: {
      isNativeTag: NO,
      performance: !1,
      globalProperties: {},
      optionMergeStrategies: {},
      errorHandler: void 0,
      warnHandler: void 0,
      compilerOptions: {}
    },
    mixins: [],
    components: {},
    directives: {},
    provides: Object.create(null),
    optionsCache: new WeakMap,
    propsCache: new WeakMap,
    emitsCache: new WeakMap
  }
}
let uid$1 = 0;

function createAppAPI(e, t) {
  return function (e, t = null) {
    isFunction$1(e) || (e = Object.assign({}, e)), null == t || isObject$1(t) || (t = null);
    const n = createAppContext(),
      o = new Set,
      r = n.app = {
        _uid: uid$1++,
        _component: e,
        _props: t,
        _container: null,
        _context: n,
        _instance: null,
        version: version$1,
        get config() {
          return n.config
        },
        set config(e) {},
        use: (e, ...t) => (o.has(e) || (e && isFunction$1(e.install) ? (o.add(e), e.install(r, ...t)) : isFunction$1(e) && (o.add(e), e(r, ...t))), r),
        mixin: e => (n.mixins.includes(e) || n.mixins.push(e), r),
        component: (e, t) => t ? (n.components[e] = t, r) : n.components[e],
        directive: (e, t) => t ? (n.directives[e] = t, r) : n.directives[e],
        mount() {},
        unmount() {},
        provide: (e, t) => (n.provides[e] = t, r)
      };
    return r
  }
}
const queuePostRenderEffect$1 = queuePostFlushCb,
  InternalObjectKey = "__vInternal";

function guardReactiveProps(e) {
  return e ? isProxy(e) || InternalObjectKey in e ? extend$1({}, e) : e : null
}
const emptyAppContext = createAppContext();
let uid = 0;

function createComponentInstance(e, t, n) {
  const o = e.type,
    r = (t ? t.appContext : e.appContext) || emptyAppContext,
    i = {
      uid: uid++,
      vnode: e,
      type: o,
      parent: t,
      appContext: r,
      root: null,
      next: null,
      subTree: null,
      effect: null,
      update: null,
      scope: new EffectScope(!0),
      render: null,
      proxy: null,
      exposed: null,
      exposeProxy: null,
      withProxy: null,
      provides: t ? t.provides : Object.create(r.provides),
      accessCache: null,
      renderCache: [],
      components: null,
      directives: null,
      propsOptions: normalizePropsOptions(o, r),
      emitsOptions: normalizeEmitsOptions(o, r),
      emit: null,
      emitted: null,
      propsDefaults: EMPTY_OBJ,
      inheritAttrs: o.inheritAttrs,
      ctx: EMPTY_OBJ,
      data: EMPTY_OBJ,
      props: EMPTY_OBJ,
      attrs: EMPTY_OBJ,
      slots: EMPTY_OBJ,
      refs: EMPTY_OBJ,
      setupState: EMPTY_OBJ,
      setupContext: null,
      suspense: n,
      suspenseId: n ? n.pendingId : 0,
      asyncDep: null,
      asyncResolved: !1,
      isMounted: !1,
      isUnmounted: !1,
      isDeactivated: !1,
      bc: null,
      c: null,
      bm: null,
      m: null,
      bu: null,
      u: null,
      um: null,
      bum: null,
      da: null,
      a: null,
      rtg: null,
      rtc: null,
      ec: null,
      sp: null
    };
  return i.ctx = {
    _: i
  }, i.root = t ? t.root : i, i.emit = emit.bind(null, i), e.ce && e.ce(i), i
}
let currentInstance = null;
const getCurrentInstance = () => currentInstance || currentRenderingInstance,
  setCurrentInstance = e => {
    currentInstance = e, e.scope.on()
  },
  unsetCurrentInstance = () => {
    currentInstance && currentInstance.scope.off(), currentInstance = null
  };

function isStatefulComponent(e) {
  return 4 & e.vnode.shapeFlag
}
let isInSSRComponentSetup = !1;

function setupComponent(e, t = !1) {
  isInSSRComponentSetup = t;
  const {
    props: n
  } = e.vnode, o = isStatefulComponent(e);
  initProps$1(e, n, o, t);
  const r = o ? setupStatefulComponent(e) : void 0;
  return isInSSRComponentSetup = !1, r
}

function setupStatefulComponent(e, t) {
  const n = e.type;
  e.accessCache = Object.create(null), e.proxy = markRaw(new Proxy(e.ctx, PublicInstanceProxyHandlers));
  const {
    setup: o
  } = n;
  if (o) {
    const t = e.setupContext = o.length > 1 ? createSetupContext(e) : null;
    setCurrentInstance(e), pauseTracking();
    const n = callWithErrorHandling(o, e, 0, [e.props, t]);
    resetTracking(), unsetCurrentInstance(), isPromise(n) ? n.then(unsetCurrentInstance, unsetCurrentInstance) : handleSetupResult(e, n)
  } else finishComponentSetup(e)
}

function handleSetupResult(e, t, n) {
  isFunction$1(t) ? e.render = t : isObject$1(t) && (e.setupState = proxyRefs(t)), finishComponentSetup(e)
}

function finishComponentSetup(e, t, n) {
  const o = e.type;
  e.render || (e.render = o.render || NOOP), setCurrentInstance(e), pauseTracking(), applyOptions$1(e), resetTracking(), unsetCurrentInstance()
}

function createAttrsProxy(e) {
  return new Proxy(e.attrs, {
    get: (t, n) => (track(e, "get", "$attrs"), t[n])
  })
}

function createSetupContext(e) {
  const t = t => {
    e.exposed = t || {}
  };
  let n;
  return {
    get attrs() {
      return n || (n = createAttrsProxy(e))
    },
    slots: e.slots,
    emit: e.emit,
    expose: t
  }
}

function getExposeProxy(e) {
  if (e.exposed) return e.exposeProxy || (e.exposeProxy = new Proxy(proxyRefs(markRaw(e.exposed)), {
    get: (t, n) => n in t ? t[n] : e.proxy[n],
    has: (e, t) => t in e || t in publicPropertiesMap
  }))
}
const computed = (e, t) => computed$1(e, t, isInSSRComponentSetup),
  version$1 = "3.2.47";

function unwrapper(e) {
  return unref(e)
}
const ARRAYTYPE = "[object Array]",
  OBJECTTYPE = "[object Object]";

function diff$1(e, t) {
  const n = {};
  return syncKeys(e, t), _diff(e, t, "", n), n
}

function syncKeys(e, t) {
  if ((e = unwrapper(e)) === t) return;
  const n = toTypeString(e),
    o = toTypeString(t);
  if (n == OBJECTTYPE && o == OBJECTTYPE)
    for (let r in t) {
      const n = e[r];
      void 0 === n ? e[r] = null : syncKeys(n, t[r])
    } else n == ARRAYTYPE && o == ARRAYTYPE && e.length >= t.length && t.forEach(((t, n) => {
      syncKeys(e[n], t)
    }))
}

function _diff(e, t, n, o) {
  if ((e = unwrapper(e)) === t) return;
  const r = toTypeString(e),
    i = toTypeString(t);
  if (r == OBJECTTYPE)
    if (i != OBJECTTYPE || Object.keys(e).length < Object.keys(t).length) setResult(o, n, e);
    else
      for (let a in e) {
        const r = unwrapper(e[a]),
          i = t[a],
          s = toTypeString(r),
          c = toTypeString(i);
        if (s != ARRAYTYPE && s != OBJECTTYPE) r != i && setResult(o, ("" == n ? "" : n + ".") + a, r);
        else if (s == ARRAYTYPE) c != ARRAYTYPE || r.length < i.length ? setResult(o, ("" == n ? "" : n + ".") + a, r) : r.forEach(((e, t) => {
          _diff(e, i[t], ("" == n ? "" : n + ".") + a + "[" + t + "]", o)
        }));
        else if (s == OBJECTTYPE)
          if (c != OBJECTTYPE || Object.keys(r).length < Object.keys(i).length) setResult(o, ("" == n ? "" : n + ".") + a, r);
          else
            for (let e in r) _diff(r[e], i[e], ("" == n ? "" : n + ".") + a + "." + e, o)
      } else r == ARRAYTYPE ? i != ARRAYTYPE || e.length < t.length ? setResult(o, n, e) : e.forEach(((e, r) => {
        _diff(e, t[r], n + "[" + r + "]", o)
      })) : setResult(o, n, e)
}

function setResult(e, t, n) {
  e[t] = n
}

function hasComponentEffect(e) {
  return queue.includes(e.update)
}

function flushCallbacks(e) {
  const t = e.ctx.__next_tick_callbacks;
  if (t && t.length) {
    const e = t.slice(0);
    t.length = 0;
    for (let t = 0; t < e.length; t++) e[t]()
  }
}

function nextTick(e, t) {
  const n = e.ctx;
  if (!n.__next_tick_pending && !hasComponentEffect(e)) return nextTick$1(t && t.bind(e.proxy));
  let o;
  return n.__next_tick_callbacks || (n.__next_tick_callbacks = []), n.__next_tick_callbacks.push((() => {
    t ? callWithErrorHandling(t.bind(e.proxy), e, 14) : o && o(e.proxy)
  })), new Promise((e => {
    o = e
  }))
}

function clone$2(e, t) {
  const n = typeof (e = unwrapper(e));
  if ("object" === n && null !== e) {
    let n = t.get(e);
    if (void 0 !== n) return n;
    if (isArray$1(e)) {
      const o = e.length;
      n = new Array(o), t.set(e, n);
      for (let r = 0; r < o; r++) n[r] = clone$2(e[r], t)
    } else {
      n = {}, t.set(e, n);
      for (const o in e) hasOwn(e, o) && (n[o] = clone$2(e[o], t))
    }
    return n
  }
  if ("symbol" !== n) return e
}

function deepCopy(e) {
  return clone$2(e, "undefined" != typeof WeakMap ? new WeakMap : new Map)
}

function getMPInstanceData(e, t) {
  const n = e.data,
    o = Object.create(null);
  return t.forEach((e => {
    o[e] = n[e]
  })), o
}

function patch(e, t, n) {
  if (!t) return;
  t = deepCopy(t);
  const o = e.ctx,
    r = o.mpType;
  if ("page" === r || "component" === r) {
    t.r0 = 1;
    const r = o.$scope,
      i = Object.keys(t),
      a = diff$1(t, n || getMPInstanceData(r, i));
    Object.keys(a).length ? (o.__next_tick_pending = !0, r.setData(a, (() => {
      o.__next_tick_pending = !1, flushCallbacks(e)
    })), flushPreFlushCbs()) : flushCallbacks(e)
  }
}

function initAppConfig(e) {
  e.globalProperties.$nextTick = function (e) {
    return nextTick(this.$, e)
  }
}

function onApplyOptions(e, t, n) {
  t.appContext.config.globalProperties.$applyOptions(e, t, n);
  const o = e.computed;
  if (o) {
    const e = Object.keys(o);
    if (e.length) {
      const n = t.ctx;
      n.$computedKeys || (n.$computedKeys = []), n.$computedKeys.push(...e)
    }
  }
  delete t.ctx.$onApplyOptions
}

function setRef$1(e, t = !1) {
  const {
    setupState: n,
    $templateRefs: o,
    ctx: {
      $scope: r,
      $mpPlatform: i
    }
  } = e;
  if ("mp-alipay" === i) return;
  if (!o || !r) return;
  if (t) return o.forEach((e => setTemplateRef(e, null, n)));
  const a = "mp-baidu" === i || "mp-toutiao" === i,
    s = e => {
      const t = (r.selectAllComponents(".r") || []).concat(r.selectAllComponents(".r-i-f") || []);
      return e.filter((e => {
        const o = findComponentPublicInstance(t, e.i);
        return !(!a || null !== o) || (setTemplateRef(e, o, n), !1)
      }))
    },
    c = () => {
      const t = s(o);
      t.length && e.proxy && e.proxy.$scope && e.proxy.$scope.setData({
        r1: 1
      }, (() => {
        s(t)
      }))
    };
  r._$setRef ? r._$setRef(c) : nextTick(e, c)
}

function toSkip(e) {
  return isObject$1(e) && markRaw(e), e
}

function findComponentPublicInstance(e, t) {
  const n = e.find((e => e && (e.properties || e.props).uI === t));
  if (n) {
    const e = n.$vm;
    return e ? getExposeProxy(e.$) || e : toSkip(n)
  }
  return null
}

function setTemplateRef({
  r: e,
  f: t
}, n, o) {
  if (isFunction$1(e)) e(n, {});
  else {
    const r = isString$1(e),
      i = isRef(e);
    if (r || i)
      if (t) {
        if (!i) return;
        isArray$1(e.value) || (e.value = []);
        const t = e.value;
        if (-1 === t.indexOf(n)) {
          if (t.push(n), !n) return;
          onBeforeUnmount((() => remove(t, n)), n.$)
        }
      } else r ? hasOwn(o, e) && (o[e] = n) : isRef(e) && (e.value = n)
  }
}
var MPType, MPType2;
MPType2 = MPType || (MPType = {}), MPType2.APP = "app", MPType2.PAGE = "page", MPType2.COMPONENT = "component";
const queuePostRenderEffect = queuePostFlushCb;

function mountComponent(e, t) {
  const n = e.component = createComponentInstance(e, t.parentComponent, null);
  return n.ctx.$onApplyOptions = onApplyOptions, n.ctx.$children = [], "app" === t.mpType && (n.render = NOOP), t.onBeforeSetup && t.onBeforeSetup(n, t), setupComponent(n), t.parentComponent && n.proxy && t.parentComponent.ctx.$children.push(getExposeProxy(n) || n.proxy), setupRenderEffect(n), n.proxy
}
const getFunctionalFallthrough = e => {
  let t;
  for (const n in e)("class" === n || "style" === n || isOn(n)) && ((t || (t = {}))[n] = e[n]);
  return t
};

function renderComponentRoot(e) {
  const {
    type: t,
    vnode: n,
    proxy: o,
    withProxy: r,
    props: i,
    propsOptions: [a],
    slots: s,
    attrs: c,
    emit: l,
    render: u,
    renderCache: d,
    data: p,
    setupState: f,
    ctx: h,
    uid: m,
    appContext: {
      app: {
        config: {
          globalProperties: {
            pruneComponentPropsCache: g
          }
        }
      }
    },
    inheritAttrs: y
  } = e;
  let v;
  e.$templateRefs = [], e.$ei = 0, g(m), e.__counter = 0 === e.__counter ? 1 : 0;
  const _ = setCurrentRenderingInstance(e);
  try {
    if (4 & n.shapeFlag) {
      fallthroughAttrs(y, i, a, c);
      const e = r || o;
      v = u.call(e, e, d, i, f, p, h)
    } else {
      fallthroughAttrs(y, i, a, t.props ? c : getFunctionalFallthrough(c));
      const e = t;
      v = e.length > 1 ? e(i, {
        attrs: c,
        slots: s,
        emit: l
      }) : e(i, null)
    }
  } catch (x) {
    handleError(x, e, 1), v = !1
  }
  return setRef$1(e), setCurrentRenderingInstance(_), v
}

function fallthroughAttrs(e, t, n, o) {
  if (t && o && !1 !== e) {
    const e = Object.keys(o).filter((e => "class" !== e && "style" !== e));
    if (!e.length) return;
    n && e.some(isModelListener) ? e.forEach((e => {
      isModelListener(e) && e.slice(9) in n || (t[e] = o[e])
    })) : e.forEach((e => t[e] = o[e]))
  }
}
const updateComponentPreRender = e => {
  pauseTracking(), flushPreFlushCbs(), resetTracking()
};

function componentUpdateScopedSlotsFn() {
  const e = this.$scopedSlotsData;
  if (!e || 0 === e.length) return;
  const t = this.ctx.$scope,
    n = t.data,
    o = Object.create(null);
  e.forEach((({
    path: e,
    index: t,
    data: r
  }) => {
    const i = getValueByDataPath(n, e),
      a = isString$1(t) ? `${e}.${t}` : `${e}[${t}]`;
    if (void 0 === i || void 0 === i[t]) o[a] = r;
    else {
      const e = diff$1(r, i[t]);
      Object.keys(e).forEach((t => {
        o[a + "." + t] = e[t]
      }))
    }
  })), e.length = 0, Object.keys(o).length && t.setData(o)
}

function toggleRecurse({
  effect: e,
  update: t
}, n) {
  e.allowRecurse = t.allowRecurse = n
}

function setupRenderEffect(e) {
  const t = componentUpdateScopedSlotsFn.bind(e);
  e.$updateScopedSlots = () => nextTick$1((() => queueJob(t)));
  const n = e.effect = new ReactiveEffect((() => {
      if (e.isMounted) {
        const {
          next: t,
          bu: n,
          u: o
        } = e;
        toggleRecurse(e, !1), updateComponentPreRender(), n && invokeArrayFns$1(n), toggleRecurse(e, !0), patch(e, renderComponentRoot(e)), o && queuePostRenderEffect(o)
      } else onBeforeUnmount((() => {
        setRef$1(e, !0)
      }), e), patch(e, renderComponentRoot(e))
    }), (() => queueJob(e.update)), e.scope),
    o = e.update = n.run.bind(n);
  o.id = e.uid, toggleRecurse(e, !0), o()
}

function unmountComponent(e) {
  const {
    bum: t,
    scope: n,
    update: o,
    um: r
  } = e;
  t && invokeArrayFns$1(t), n.stop(), o && (o.active = !1), r && queuePostRenderEffect(r), queuePostRenderEffect((() => {
    e.isUnmounted = !0
  }))
}
const oldCreateApp = createAppAPI();

function getTarget() {
  return "undefined" != typeof window ? window : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof global ? global : "undefined" != typeof my ? my : void 0
}

function createVueApp(e, t = null) {
  getTarget().__VUE__ = !0;
  const n = oldCreateApp(e, t),
    o = n._context;
  initAppConfig(o.config);
  const r = e => (e.appContext = o, e.shapeFlag = 6, e),
    i = function (e, t) {
      return mountComponent(r(e), t)
    },
    a = function (e) {
      return e && unmountComponent(e.$)
    };
  return n.mount = function () {
    e.render = NOOP;
    const t = mountComponent(r({
      type: e
    }), {
      mpType: MPType.APP,
      mpInstance: null,
      parentComponent: null,
      slots: [],
      props: null
    });
    return n._instance = t.$, t.$app = n, t.$createComponent = i, t.$destroyComponent = a, o.$appInstance = t, t
  }, n.unmount = function () {}, n
}

function useCssVars(e) {
  const t = getCurrentInstance();
  t && initCssVarsRender(t, e)
}

function initCssVarsRender(e, t) {
  e.ctx.__cssVars = () => {
    const n = t(e.proxy),
      o = {};
    for (const e in n) o[`--${e}`] = n[e];
    return o
  }
}

function injectLifecycleHook(e, t, n, o) {
  isFunction$1(t) && injectHook(e, t.bind(n), o)
}

function initHooks$1(e, t, n) {
  const o = e.mpType || n.$mpType;
  o && "component" !== o && Object.keys(e).forEach((o => {
    if (isUniLifecycleHook(o, e[o], !1)) {
      const r = e[o];
      isArray$1(r) ? r.forEach((e => injectLifecycleHook(o, e, n, t))) : injectLifecycleHook(o, r, n, t)
    }
  }))
}

function applyOptions$2(e, t, n) {
  initHooks$1(e, t, n)
}

function set$3(e, t, n) {
  return e[t] = n
}

function createErrorHandler(e) {
  return function (t, n, o) {
    if (!n) throw t;
    const r = e._instance;
    if (!r || !r.proxy) throw t;
    r.proxy.$callHook(ON_ERROR, t)
  }
}

function mergeAsArray(e, t) {
  return e ? [...new Set([].concat(e, t))] : t
}

function initOptionMergeStrategies(e) {
  UniLifecycleHooks.forEach((t => {
    e[t] = mergeAsArray
  }))
}
let realAtob;
const b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
  b64re$1 = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;

function b64DecodeUnicode(e) {
  return decodeURIComponent(realAtob(e).split("").map((function (e) {
    return "%" + ("00" + e.charCodeAt(0).toString(16)).slice(-2)
  })).join(""))
}

function getCurrentUserInfo() {
  const e = index.getStorageSync("uni_id_token") || "",
    t = e.split(".");
  if (!e || 3 !== t.length) return {
    uid: null,
    role: [],
    permission: [],
    tokenExpired: 0
  };
  let n;
  try {
    n = JSON.parse(b64DecodeUnicode(t[1]))
  } catch (o) {
    throw new Error("获取当前用户信息出错，详细错误信息为：" + o.message)
  }
  return n.tokenExpired = 1e3 * n.exp, delete n.exp, delete n.iat, n
}

function uniIdMixin(e) {
  e.uniIDHasRole = function (e) {
    const {
      role: t
    } = getCurrentUserInfo();
    return t.indexOf(e) > -1
  }, e.uniIDHasPermission = function (e) {
    const {
      permission: t
    } = getCurrentUserInfo();
    return this.uniIDHasRole("admin") || t.indexOf(e) > -1
  }, e.uniIDTokenValid = function () {
    const {
      tokenExpired: e
    } = getCurrentUserInfo();
    return e > Date.now()
  }
}

function initApp(e) {
  const t = e._context.config;
  t.errorHandler = invokeCreateErrorHandler(e, createErrorHandler), initOptionMergeStrategies(t.optionMergeStrategies);
  const n = t.globalProperties;
  uniIdMixin(n), n.$set = set$3, n.$applyOptions = applyOptions$2, index.invokeCreateVueAppHook(e)
}
realAtob = "function" != typeof atob ? function (e) {
  if (e = String(e).replace(/[\t\n\f\r ]+/g, ""), !b64re$1.test(e)) throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.");
  var t;
  e += "==".slice(2 - (3 & e.length));
  for (var n, o, r = "", i = 0; i < e.length;) t = b64.indexOf(e.charAt(i++)) << 18 | b64.indexOf(e.charAt(i++)) << 12 | (n = b64.indexOf(e.charAt(i++))) << 6 | (o = b64.indexOf(e.charAt(i++))), r += 64 === n ? String.fromCharCode(t >> 16 & 255) : 64 === o ? String.fromCharCode(t >> 16 & 255, t >> 8 & 255) : String.fromCharCode(t >> 16 & 255, t >> 8 & 255, 255 & t);
  return r
} : atob;
const propsCaches = Object.create(null);

function renderProps(e) {
  const {
    uid: t,
    __counter: n
  } = getCurrentInstance();
  return t + "," + ((propsCaches[t] || (propsCaches[t] = [])).push(guardReactiveProps(e)) - 1) + "," + n
}

function pruneComponentPropsCache(e) {
  delete propsCaches[e]
}

function findComponentPropsData(e) {
  if (!e) return;
  const [t, n] = e.split(",");
  return propsCaches[t] ? propsCaches[t][parseInt(n)] : void 0
}
var plugin = {
  install(e) {
    initApp(e), e.config.globalProperties.pruneComponentPropsCache = pruneComponentPropsCache;
    const t = e.mount;
    e.mount = function (n) {
      const o = t.call(e, n),
        r = getCreateApp();
      return r ? r(o) : "undefined" != typeof createMiniProgramApp && createMiniProgramApp(o), o
    }
  }
};

function getCreateApp() {
  const e = "createApp";
  return "undefined" != typeof global ? global[e] : "undefined" != typeof my ? my[e] : void 0
}

function vOn(e, t) {
  const n = getCurrentInstance(),
    o = n.ctx,
    r = void 0 === t || "mp-weixin" !== o.$mpPlatform && "mp-qq" !== o.$mpPlatform || !isString$1(t) && "number" != typeof t ? "" : "_" + t,
    i = "e" + n.$ei++ + r,
    a = o.$scope;
  if (!e) return delete a[i], i;
  const s = a[i];
  return s ? s.value = e : a[i] = createInvoker(e, n), i
}

function createInvoker(e, t) {
  const n = e => {
    patchMPEvent(e);
    let o = [e];
    e.detail && e.detail.__args__ && (o = e.detail.__args__);
    const r = n.value,
      i = () => callWithAsyncErrorHandling(patchStopImmediatePropagation(e, r), t, 5, o),
      a = e.target,
      s = !!a && (!!a.dataset && "true" === String(a.dataset.eventsync));
    if (!bubbles.includes(e.type) || s) {
      const t = i();
      if ("input" === e.type && (isArray$1(t) || isPromise(t))) return;
      return t
    }
    setTimeout(i)
  };
  return n.value = e, n
}
const bubbles = ["tap", "longpress", "longtap", "transitionend", "animationstart", "animationiteration", "animationend", "touchforcechange"];

function patchMPEvent(e) {
  e.type && e.target && (e.preventDefault = NOOP, e.stopPropagation = NOOP, e.stopImmediatePropagation = NOOP, hasOwn(e, "detail") || (e.detail = {}), hasOwn(e, "markerId") && (e.detail = "object" == typeof e.detail ? e.detail : {}, e.detail.markerId = e.markerId), isPlainObject$1(e.detail) && hasOwn(e.detail, "checked") && !hasOwn(e.detail, "value") && (e.detail.value = e.detail.checked), isPlainObject$1(e.detail) && (e.target = extend$1({}, e.target, e.detail)))
}

function patchStopImmediatePropagation(e, t) {
  if (isArray$1(t)) {
    const n = e.stopImmediatePropagation;
    return e.stopImmediatePropagation = () => {
      n && n.call(e), e._stopped = !0
    }, t.map((e => t => !t._stopped && e(t)))
  }
  return t
}

function vFor(e, t) {
  let n;
  if (isArray$1(e) || isString$1(e)) {
    n = new Array(e.length);
    for (let o = 0, r = e.length; o < r; o++) n[o] = t(e[o], o, o)
  } else if ("number" == typeof e) {
    n = new Array(e);
    for (let o = 0; o < e; o++) n[o] = t(o + 1, o, o)
  } else if (isObject$1(e))
    if (e[Symbol.iterator]) n = Array.from(e, ((e, n) => t(e, n, n)));
    else {
      const o = Object.keys(e);
      n = new Array(o.length);
      for (let r = 0, i = o.length; r < i; r++) {
        const i = o[r];
        n[r] = t(e[i], i, r)
      }
    }
  else n = [];
  return n
}

function stringifyStyle(e) {
  return isString$1(e) ? e : stringify(normalizeStyle(e))
}

function stringify(e) {
  let t = "";
  if (!e || isString$1(e)) return t;
  for (const n in e) t += `${n.startsWith("--")?n:hyphenate(n)}:${e[n]};`;
  return t
}
const o = (e, t) => vOn(e, t),
  f = (e, t) => vFor(e, t),
  s = e => stringifyStyle(e),
  e = (e, ...t) => extend$1(e, ...t),
  n = e => normalizeClass(e),
  t = e => toDisplayString(e),
  p = e => renderProps(e);

function createApp$1(e, t = null) {
  return e && (e.mpType = "app"), createVueApp(e, t).use(plugin)
}
const createSSRApp = createApp$1,
  MP_METHODS = ["createSelectorQuery", "createIntersectionObserver", "selectAllComponents", "selectComponent"];

function createEmitFn(e, t) {
  return function (n, ...o) {
    const r = t.$scope;
    if (r && n) {
      const e = {
        __args__: o
      };
      r.triggerEvent(n, e)
    }
    return e.apply(this, [n, ...o])
  }
}

function initBaseInstance(e, t) {
  const n = e.ctx;
  n.mpType = t.mpType, n.$mpType = t.mpType, n.$mpPlatform = "mp-weixin", n.$scope = t.mpInstance, n.$mp = {}, n._self = {}, e.slots = {}, isArray$1(t.slots) && t.slots.length && (t.slots.forEach((t => {
    e.slots[t] = !0
  })), e.slots[SLOT_DEFAULT_NAME] && (e.slots.default = !0)), n.getOpenerEventChannel = function () {
    return t.mpInstance.getOpenerEventChannel()
  }, n.$hasHook = hasHook, n.$callHook = callHook, e.emit = createEmitFn(e.emit, n)
}

function initComponentInstance(e, t) {
  initBaseInstance(e, t);
  const n = e.ctx;
  MP_METHODS.forEach((e => {
    n[e] = function (...t) {
      const o = n.$scope;
      if (o && o[e]) return o[e].apply(o, t)
    }
  }))
}

function initMocks(e, t, n) {
  const o = e.ctx;
  n.forEach((n => {
    hasOwn(t, n) && (e[n] = o[n] = t[n])
  }))
}

function hasHook(e) {
  const t = this.$[e];
  return !(!t || !t.length)
}

function callHook(e, t) {
  "mounted" === e && (callHook.call(this, "bm"), this.$.isMounted = !0, e = "m");
  const n = this.$[e];
  return n && invokeArrayFns(n, t)
}
const PAGE_INIT_HOOKS = [ON_LOAD, ON_SHOW, ON_HIDE, ON_UNLOAD, ON_RESIZE, ON_TAB_ITEM_TAP, ON_REACH_BOTTOM, ON_PULL_DOWN_REFRESH, ON_ADD_TO_FAVORITES];

function findHooks(e, t = new Set) {
  if (e) {
    Object.keys(e).forEach((n => {
      isUniLifecycleHook(n, e[n]) && t.add(n)
    })); {
      const {
        extends: n,
        mixins: o
      } = e;
      o && o.forEach((e => findHooks(e, t))), n && findHooks(n, t)
    }
  }
  return t
}

function initHook(e, t, n) {
  -1 !== n.indexOf(t) || hasOwn(e, t) || (e[t] = function (e) {
    return this.$vm && this.$vm.$callHook(t, e)
  })
}
const EXCLUDE_HOOKS = [ON_READY];

function initHooks(e, t, n = EXCLUDE_HOOKS) {
  t.forEach((t => initHook(e, t, n)))
}

function initUnknownHooks(e, t, n = EXCLUDE_HOOKS) {
  findHooks(t).forEach((t => initHook(e, t, n)))
}

function initRuntimeHooks(e, t) {
  if (!t) return;
  Object.keys(MINI_PROGRAM_PAGE_RUNTIME_HOOKS).forEach((n => {
    t & MINI_PROGRAM_PAGE_RUNTIME_HOOKS[n] && initHook(e, n, [])
  }))
}
const findMixinRuntimeHooks = once((() => {
  const e = [],
    t = isFunction$1(getApp) && getApp({
      allowDefault: !0
    });
  if (t && t.$vm && t.$vm.$) {
    const n = t.$vm.$.appContext.mixins;
    if (isArray$1(n)) {
      const t = Object.keys(MINI_PROGRAM_PAGE_RUNTIME_HOOKS);
      n.forEach((n => {
        t.forEach((t => {
          hasOwn(n, t) && !e.includes(t) && e.push(t)
        }))
      }))
    }
  }
  return e
}));

function initMixinRuntimeHooks(e) {
  initHooks(e, findMixinRuntimeHooks())
}
const HOOKS = [ON_SHOW, ON_HIDE, ON_ERROR, ON_THEME_CHANGE, ON_PAGE_NOT_FOUND, ON_UNHANDLE_REJECTION];

function parseApp(e, t) {
  const n = e.$,
    o = {
      globalData: e.$options && e.$options.globalData || {},
      $vm: e,
      onLaunch(t) {
        this.$vm = e;
        const o = n.ctx;
        this.$vm && o.$scope || (initBaseInstance(n, {
          mpType: "app",
          mpInstance: this,
          slots: []
        }), o.globalData = this.globalData, e.$callHook(ON_LAUNCH, t))
      }
    };
  initLocale(e);
  const r = e.$.type;
  initHooks(o, HOOKS), initUnknownHooks(o, r); {
    const e = r.methods;
    e && extend$1(o, e)
  }
  return t && t.parse(o), o
}

function initCreateApp(e) {
  return function (t) {
    return App(parseApp(t, e))
  }
}

function initCreateSubpackageApp(e) {
  return function (t) {
    const n = parseApp(t, e),
      o = isFunction$1(getApp) && getApp({
        allowDefault: !0
      });
    if (!o) return;
    t.$.ctx.$scope = o;
    const r = o.globalData;
    r && Object.keys(n.globalData).forEach((e => {
      hasOwn(r, e) || (r[e] = n.globalData[e])
    })), Object.keys(n).forEach((e => {
      hasOwn(o, e) || (o[e] = n[e])
    })), initAppLifecycle(n, t)
  }
}

function initAppLifecycle(e, t) {
  if (isFunction$1(e.onLaunch)) {
    const t = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();
    e.onLaunch(t)
  }
  isFunction$1(e.onShow) && wx.onAppShow && wx.onAppShow((e => {
    t.$callHook("onShow", e)
  })), isFunction$1(e.onHide) && wx.onAppHide && wx.onAppHide((e => {
    t.$callHook("onHide", e)
  }))
}

function initLocale(e) {
  const t = ref(normalizeLocale$1(wx.getSystemInfoSync().language) || LOCALE_EN);
  Object.defineProperty(e, "$locale", {
    get: () => t.value,
    set(e) {
      t.value = e
    }
  })
}

function initVueIds(e, t) {
  if (!e) return;
  const n = e.split(","),
    o = n.length;
  1 === o ? t._$vueId = n[0] : 2 === o && (t._$vueId = n[0], t._$vuePid = n[1])
}
const EXTRAS = ["externalClasses"];

function initExtraOptions(e, t) {
  EXTRAS.forEach((n => {
    hasOwn(t, n) && (e[n] = t[n])
  }))
}
const WORKLET_RE = /_(.*)_worklet_factory_/;

function initWorkletMethods(e, t) {
  t && Object.keys(t).forEach((n => {
    const o = n.match(WORKLET_RE);
    if (o) {
      const r = o[1];
      e[n] = t[n], e[r] = t[r]
    }
  }))
}

function initWxsCallMethods(e, t) {
  isArray$1(t) && t.forEach((t => {
    e[t] = function (e) {
      return this.$vm[t](e)
    }
  }))
}

function selectAllComponents(e, t, n) {
  e.selectAllComponents(t).forEach((e => {
    const t = e.properties.uR;
    n[t] = e.$vm || e
  }))
}

function initRefs(e, t) {
  Object.defineProperty(e, "refs", {
    get() {
      const e = {};
      selectAllComponents(t, ".r", e);
      return t.selectAllComponents(".r-i-f").forEach((t => {
        const n = t.properties.uR;
        n && (e[n] || (e[n] = []), e[n].push(t.$vm || t))
      })), e
    }
  })
}

function findVmByVueId(e, t) {
  const n = e.$children;
  for (let r = n.length - 1; r >= 0; r--) {
    const e = n[r];
    if (e.$scope._$vueId === t) return e
  }
  let o;
  for (let r = n.length - 1; r >= 0; r--)
    if (o = findVmByVueId(n[r], t), o) return o
}
const builtInProps = ["eO", "uR", "uRIF", "uI", "uT", "uP", "uS"];

function initDefaultProps(e, t = !1) {
  const n = {};
  return t || (builtInProps.forEach((e => {
    n[e] = {
      type: null,
      value: ""
    }
  })), n.uS = {
    type: null,
    value: [],
    observer: function (e) {
      const t = Object.create(null);
      e && e.forEach((e => {
        t[e] = !0
      })), this.setData({
        $slots: t
      })
    }
  }), e.behaviors && e.behaviors.includes("wx://form-field") && (n.name = {
    type: null,
    value: ""
  }, n.value = {
    type: null,
    value: ""
  }), n
}

function initVirtualHostProps(e) {
  const t = {};
  return e && e.virtualHost && (t.virtualHostStyle = {
    type: null,
    value: ""
  }, t.virtualHostClass = {
    type: null,
    value: ""
  }), t
}

function initProps(e) {
  e.properties || (e.properties = {}), extend$1(e.properties, initDefaultProps(e), initVirtualHostProps(e.options))
}
const PROP_TYPES = [String, Number, Boolean, Object, Array, null];

function parsePropType(e, t) {
  return isArray$1(e) && 1 === e.length ? e[0] : e
}

function normalizePropType(e, t) {
  const n = parsePropType(e);
  return -1 !== PROP_TYPES.indexOf(n) ? n : null
}

function initPageProps({
  properties: e
}, t) {
  isArray$1(t) ? t.forEach((t => {
    e[t] = {
      type: String,
      value: ""
    }
  })) : isPlainObject$1(t) && Object.keys(t).forEach((n => {
    const o = t[n];
    if (isPlainObject$1(o)) {
      let t = o.default;
      isFunction$1(t) && (t = t());
      const r = o.type;
      o.type = normalizePropType(r), e[n] = {
        type: o.type,
        value: t
      }
    } else e[n] = {
      type: normalizePropType(o)
    }
  }))
}

function findPropsData(e, t) {
  return (t ? findPagePropsData(e) : findComponentPropsData(e.uP)) || {}
}

function findPagePropsData(e) {
  const t = {};
  return isPlainObject$1(e) && Object.keys(e).forEach((n => {
    -1 === builtInProps.indexOf(n) && (t[n] = e[n])
  })), t
}

function initFormField(e) {
  const t = e.$options;
  isArray$1(t.behaviors) && t.behaviors.includes("uni://form-field") && e.$watch("modelValue", (() => {
    e.$scope && e.$scope.setData({
      name: e.name,
      value: e.modelValue
    })
  }), {
    immediate: !0
  })
}

function initData(e) {
  return {}
}

function initPropsObserver(e) {
  const t = function () {
    const e = this.properties.uP;
    e && (this.$vm ? updateComponentProps(e, this.$vm.$) : "m" === this.properties.uT && updateMiniProgramComponentProperties(e, this))
  };
  e.observers || (e.observers = {}), e.observers.uP = t
}

function updateMiniProgramComponentProperties(e, t) {
  const n = t.properties,
    o = findComponentPropsData(e) || {};
  hasPropsChanged(n, o, !1) && t.setData(o)
}

function updateComponentProps(e, t) {
  const n = toRaw(t.props),
    o = findComponentPropsData(e) || {};
  hasPropsChanged(n, o) && (updateProps(t, o, n, !1), hasQueueJob(t.update) && invalidateJob(t.update), t.update())
}

function hasPropsChanged(e, t, n = !0) {
  const o = Object.keys(t);
  if (n && o.length !== Object.keys(e).length) return !0;
  for (let r = 0; r < o.length; r++) {
    const n = o[r];
    if (t[n] !== e[n]) return !0
  }
  return !1
}

function initBehaviors(e) {
  const t = e.behaviors;
  let n = e.props;
  n || (e.props = n = []);
  const o = [];
  return isArray$1(t) && t.forEach((e => {
    o.push(e.replace("uni://", "wx://")), "uni://form-field" === e && (isArray$1(n) ? (n.push("name"), n.push("modelValue")) : (n.name = {
      type: String,
      default: ""
    }, n.modelValue = {
      type: [String, Number, Boolean, Array, Object, Date],
      default: ""
    }))
  })), o
}

function applyOptions(e, t) {
  e.data = initData(), e.behaviors = initBehaviors(t)
}

function parseComponent(e, {
  parse: t,
  mocks: n,
  isPage: o,
  initRelation: r,
  handleLink: i,
  initLifetimes: a
}) {
  e = e.default || e;
  const s = {
    multipleSlots: !0,
    addGlobalClass: !0,
    pureDataPattern: /^uP$/
  };
  isArray$1(e.mixins) && e.mixins.forEach((e => {
    isObject$1(e.options) && extend$1(s, e.options)
  })), e.options && extend$1(s, e.options);
  const c = {
    options: s,
    lifetimes: a({
      mocks: n,
      isPage: o,
      initRelation: r,
      vueOptions: e
    }),
    pageLifetimes: {
      show() {
        this.$vm && this.$vm.$callHook("onPageShow")
      },
      hide() {
        this.$vm && this.$vm.$callHook("onPageHide")
      },
      resize(e) {
        this.$vm && this.$vm.$callHook("onPageResize", e)
      }
    },
    methods: {
      __l: i
    }
  };
  return applyOptions(c, e), initProps(c), initPropsObserver(c), initExtraOptions(c, e), initWxsCallMethods(c.methods, e.wxsCallMethods), initWorkletMethods(c.methods, e.methods), t && t(c, {
    handleLink: i
  }), c
}

function initCreateComponent(e) {
  return function (t) {
    return Component(parseComponent(t, e))
  }
}
let $createComponentFn, $destroyComponentFn;

function getAppVm() {
  return getApp().$vm
}

function $createComponent(e, t) {
  $createComponentFn || ($createComponentFn = getAppVm().$createComponent);
  const n = $createComponentFn(e, t);
  return getExposeProxy(n.$) || n
}

function $destroyComponent(e) {
  return $destroyComponentFn || ($destroyComponentFn = getAppVm().$destroyComponent), $destroyComponentFn(e)
}

function parsePage(e, t) {
  const {
    parse: n,
    mocks: o,
    isPage: r,
    initRelation: i,
    handleLink: a,
    initLifetimes: s
  } = t, c = parseComponent(e, {
    mocks: o,
    isPage: r,
    initRelation: i,
    handleLink: a,
    initLifetimes: s
  });
  initPageProps(c, (e.default || e).props);
  const l = c.methods;
  return l.onLoad = function (e) {
    return this.options = e, this.$page = {
      fullPath: addLeadingSlash(this.route + stringifyQuery(e))
    }, this.$vm && this.$vm.$callHook(ON_LOAD, e)
  }, initHooks(l, PAGE_INIT_HOOKS), initUnknownHooks(l, e), initRuntimeHooks(l, e.__runtimeHooks), initMixinRuntimeHooks(l), n && n(c, {
    handleLink: a
  }), c
}

function initCreatePage(e) {
  return function (t) {
    return Component(parsePage(t, e))
  }
}

function initCreatePluginApp(e) {
  return function (t) {
    initAppLifecycle(parseApp(t, e), t)
  }
}
const MPPage = Page,
  MPComponent = Component;

function initTriggerEvent(e) {
  const t = e.triggerEvent,
    n = function (n, ...o) {
      return t.apply(e, [customizeEvent(n), ...o])
    };
  try {
    e.triggerEvent = n
  } catch (o) {
    e._triggerEvent = n
  }
}

function initMiniProgramHook(e, t, n) {
  const o = t[e];
  t[e] = o ? function (...e) {
    return initTriggerEvent(this), o.apply(this, e)
  } : function () {
    initTriggerEvent(this)
  }
}

function initLifetimes({
  mocks: e,
  isPage: t,
  initRelation: n,
  vueOptions: o
}) {
  return {
    attached() {
      let r = this.properties;
      initVueIds(r.uI, this);
      const i = {
        vuePid: this._$vuePid
      };
      n(this, i);
      const a = this,
        s = t(a);
      let c = r;
      this.$vm = $createComponent({
        type: o,
        props: findPropsData(c, s)
      }, {
        mpType: s ? "page" : "component",
        mpInstance: a,
        slots: r.uS || {},
        parentComponent: i.parent && i.parent.$,
        onBeforeSetup(t, n) {
          initRefs(t, a), initMocks(t, a, e), initComponentInstance(t, n)
        }
      }), s || initFormField(this.$vm)
    },
    ready() {
      this.$vm && (this.$vm.$callHook("mounted"), this.$vm.$callHook(ON_READY))
    },
    detached() {
      this.$vm && (pruneComponentPropsCache(this.$vm.$.uid), $destroyComponent(this.$vm))
    }
  }
}
Page = function (e) {
  return initMiniProgramHook(ON_LOAD, e), MPPage(e)
}, Component = function (e) {
  initMiniProgramHook("created", e);
  return e.properties && e.properties.uP || (initProps(e), initPropsObserver(e)), MPComponent(e)
};
const mocks = ["__route__", "__wxExparserNodeId__", "__wxWebviewId__"];

function isPage(e) {
  return !!e.route
}

function initRelation(e, t) {
  e.triggerEvent("__l", t)
}

function handleLink(e) {
  const t = e.detail || e.value,
    n = t.vuePid;
  let o;
  n && (o = findVmByVueId(this.$vm, n)), o || (o = this.$vm), t.parent = o
}
var parseOptions = Object.freeze({
  __proto__: null,
  handleLink: handleLink,
  initLifetimes: initLifetimes,
  initRelation: initRelation,
  isPage: isPage,
  mocks: mocks
});
const createApp = initCreateApp(),
  createPage = initCreatePage(parseOptions),
  createComponent = initCreateComponent(parseOptions),
  createPluginApp = initCreatePluginApp(),
  createSubpackageApp = initCreateSubpackageApp();
wx.createApp = global.createApp = createApp, wx.createPage = createPage, wx.createComponent = createComponent, wx.createPluginApp = global.createPluginApp = createPluginApp, wx.createSubpackageApp = global.createSubpackageApp = createSubpackageApp;
const createHook = e => (t, n = getCurrentInstance()) => {
    !isInSSRComponentSetup && injectHook(e, t, n)
  },
  onLaunch = createHook(ON_LAUNCH),
  onLoad = createHook(ON_LOAD),
  onPageScroll = createHook(ON_PAGE_SCROLL),
  onReachBottom = createHook(ON_REACH_BOTTOM),
  onPullDownRefresh = createHook(ON_PULL_DOWN_REFRESH);
var isVue2 = !1;
/*!
 * pinia v2.0.33
 * (c) 2023 Eduardo San Martin Morote
 * @license MIT
 */
let activePinia;
const setActivePinia = e => activePinia = e,
  piniaSymbol = Symbol();

function isPlainObject(e) {
  return e && "object" == typeof e && "[object Object]" === Object.prototype.toString.call(e) && "function" != typeof e.toJSON
}
var MutationType, MutationType2;

function createPinia() {
  const e = effectScope(!0),
    t = e.run((() => ref({})));
  let n = [],
    o = [];
  const r = markRaw({
    install(e) {
      setActivePinia(r), r._a = e, e.provide(piniaSymbol, r), e.config.globalProperties.$pinia = r, o.forEach((e => n.push(e))), o = []
    },
    use(e) {
      return this._a || isVue2 ? n.push(e) : o.push(e), this
    },
    _p: n,
    _a: null,
    _e: e,
    _s: new Map,
    state: t
  });
  return r
}
MutationType2 = MutationType || (MutationType = {}), MutationType2.direct = "direct", MutationType2.patchObject = "patch object", MutationType2.patchFunction = "patch function";
const noop = () => {};

function addSubscription(e, t, n, o = noop) {
  e.push(t);
  const r = () => {
    const n = e.indexOf(t);
    n > -1 && (e.splice(n, 1), o())
  };
  return !n && getCurrentScope() && onScopeDispose(r), r
}

function triggerSubscriptions(e, ...t) {
  e.slice().forEach((e => {
    e(...t)
  }))
}

function mergeReactiveObjects(e, t) {
  e instanceof Map && t instanceof Map && t.forEach(((t, n) => e.set(n, t))), e instanceof Set && t instanceof Set && t.forEach(e.add, e);
  for (const n in t) {
    if (!t.hasOwnProperty(n)) continue;
    const o = t[n],
      r = e[n];
    isPlainObject(r) && isPlainObject(o) && e.hasOwnProperty(n) && !isRef(o) && !isReactive(o) ? e[n] = mergeReactiveObjects(r, o) : e[n] = o
  }
  return e
}
const skipHydrateSymbol = Symbol();

function shouldHydrate(e) {
  return !isPlainObject(e) || !e.hasOwnProperty(skipHydrateSymbol)
}
const {
  assign: assign
} = Object;

function isComputed(e) {
  return !(!isRef(e) || !e.effect)
}

function createOptionsStore(e, t, n, o) {
  const {
    state: r,
    actions: i,
    getters: a
  } = t, s = n.state.value[e];
  let c;
  return c = createSetupStore(e, (function () {
    s || (n.state.value[e] = r ? r() : {});
    const t = toRefs(n.state.value[e]);
    return assign(t, i, Object.keys(a || {}).reduce(((t, o) => (t[o] = markRaw(computed((() => {
      setActivePinia(n);
      const t = n._s.get(e);
      return a[o].call(t, t)
    }))), t)), {}))
  }), t, n, o, !0), c
}

function createSetupStore(e, t, n = {}, o, r, i) {
  let a;
  const s = assign({
      actions: {}
    }, n),
    c = {
      deep: !0
    };
  let l, u, d, p = markRaw([]),
    f = markRaw([]);
  const h = o.state.value[e];
  let m;

  function g(t) {
    let n;
    l = u = !1, "function" == typeof t ? (t(o.state.value[e]), n = {
      type: MutationType.patchFunction,
      storeId: e,
      events: d
    }) : (mergeReactiveObjects(o.state.value[e], t), n = {
      type: MutationType.patchObject,
      payload: t,
      storeId: e,
      events: d
    });
    const r = m = Symbol();
    nextTick$1().then((() => {
      m === r && (l = !0)
    })), u = !0, triggerSubscriptions(p, n, o.state.value[e])
  }
  i || h || (o.state.value[e] = {}), ref({});
  const y = i ? function () {
    const {
      state: e
    } = n, t = e ? e() : {};
    this.$patch((e => {
      assign(e, t)
    }))
  } : noop;

  function v(t, n) {
    return function () {
      setActivePinia(o);
      const r = Array.from(arguments),
        i = [],
        a = [];

      function s(e) {
        i.push(e)
      }

      function c(e) {
        a.push(e)
      }
      let l;
      triggerSubscriptions(f, {
        args: r,
        name: t,
        store: _,
        after: s,
        onError: c
      });
      try {
        l = n.apply(this && this.$id === e ? this : _, r)
      } catch (u) {
        throw triggerSubscriptions(a, u), u
      }
      return l instanceof Promise ? l.then((e => (triggerSubscriptions(i, e), e))).catch((e => (triggerSubscriptions(a, e), Promise.reject(e)))) : (triggerSubscriptions(i, l), l)
    }
  }
  const _ = reactive({
    _p: o,
    $id: e,
    $onAction: addSubscription.bind(null, f),
    $patch: g,
    $reset: y,
    $subscribe(t, n = {}) {
      const r = addSubscription(p, t, n.detached, (() => i())),
        i = a.run((() => watch((() => o.state.value[e]), (o => {
          ("sync" === n.flush ? u : l) && t({
            storeId: e,
            type: MutationType.direct,
            events: d
          }, o)
        }), assign({}, c, n))));
      return r
    },
    $dispose: function () {
      a.stop(), p = [], f = [], o._s.delete(e)
    }
  });
  o._s.set(e, _);
  const x = o._e.run((() => (a = effectScope(), a.run((() => t())))));
  for (const k in x) {
    const t = x[k];
    if (isRef(t) && !isComputed(t) || isReactive(t)) i || (h && shouldHydrate(t) && (isRef(t) ? t.value = h[k] : mergeReactiveObjects(t, h[k])), o.state.value[e][k] = t);
    else if ("function" == typeof t) {
      const e = v(k, t);
      x[k] = e, s.actions[k] = t
    }
  }
  return assign(_, x), assign(toRaw(_), x), Object.defineProperty(_, "$state", {
    get: () => o.state.value[e],
    set: e => {
      g((t => {
        assign(t, e)
      }))
    }
  }), o._p.forEach((e => {
    assign(_, a.run((() => e({
      store: _,
      app: o._a,
      pinia: o,
      options: s
    }))))
  })), h && i && n.hydrate && n.hydrate(_.$state, h), l = !0, u = !0, _
}

function defineStore(e, t, n) {
  let o, r;
  const i = "function" == typeof t;

  function a(e, n) {
    const a = getCurrentInstance();
    (e = e || a && inject(piniaSymbol, null)) && setActivePinia(e), (e = activePinia)._s.has(o) || (i ? createSetupStore(o, t, r, e) : createOptionsStore(o, r, e));
    return e._s.get(o)
  }
  return "string" == typeof e ? (o = e, r = i ? n : t) : (r = e, o = e.id), a.$id = o, a
}
const version = "3.7.5",
  VERSION = version,
  _hasatob = "function" == typeof atob,
  _hasbtoa = "function" == typeof btoa,
  _hasBuffer = "function" == typeof Buffer,
  _TD = "function" == typeof TextDecoder ? new TextDecoder : void 0,
  _TE = "function" == typeof TextEncoder ? new TextEncoder : void 0,
  b64ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
  b64chs = Array.prototype.slice.call(b64ch),
  b64tab = (e => {
    let t = {};
    return b64chs.forEach(((e, n) => t[e] = n)), t
  })(),
  b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,
  _fromCC = String.fromCharCode.bind(String),
  _U8Afrom = "function" == typeof Uint8Array.from ? Uint8Array.from.bind(Uint8Array) : e => new Uint8Array(Array.prototype.slice.call(e, 0)),
  _mkUriSafe = e => e.replace(/=/g, "").replace(/[+\/]/g, (e => "+" == e ? "-" : "_")),
  _tidyB64 = e => e.replace(/[^A-Za-z0-9\+\/]/g, ""),
  btoaPolyfill = e => {
    let t, n, o, r, i = "";
    const a = e.length % 3;
    for (let s = 0; s < e.length;) {
      if ((n = e.charCodeAt(s++)) > 255 || (o = e.charCodeAt(s++)) > 255 || (r = e.charCodeAt(s++)) > 255) throw new TypeError("invalid character found");
      t = n << 16 | o << 8 | r, i += b64chs[t >> 18 & 63] + b64chs[t >> 12 & 63] + b64chs[t >> 6 & 63] + b64chs[63 & t]
    }
    return a ? i.slice(0, a - 3) + "===".substring(a) : i
  },
  _btoa = _hasbtoa ? e => btoa(e) : _hasBuffer ? e => Buffer.from(e, "binary").toString("base64") : btoaPolyfill,
  _fromUint8Array = _hasBuffer ? e => Buffer.from(e).toString("base64") : e => {
    let t = [];
    for (let n = 0, o = e.length; n < o; n += 4096) t.push(_fromCC.apply(null, e.subarray(n, n + 4096)));
    return _btoa(t.join(""))
  },
  fromUint8Array = (e, t = !1) => t ? _mkUriSafe(_fromUint8Array(e)) : _fromUint8Array(e),
  cb_utob = e => {
    if (e.length < 2) return (t = e.charCodeAt(0)) < 128 ? e : t < 2048 ? _fromCC(192 | t >>> 6) + _fromCC(128 | 63 & t) : _fromCC(224 | t >>> 12 & 15) + _fromCC(128 | t >>> 6 & 63) + _fromCC(128 | 63 & t);
    var t = 65536 + 1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320);
    return _fromCC(240 | t >>> 18 & 7) + _fromCC(128 | t >>> 12 & 63) + _fromCC(128 | t >>> 6 & 63) + _fromCC(128 | 63 & t)
  },
  re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,
  utob = e => e.replace(re_utob, cb_utob),
  _encode = _hasBuffer ? e => Buffer.from(e, "utf8").toString("base64") : _TE ? e => _fromUint8Array(_TE.encode(e)) : e => _btoa(utob(e)),
  encode = (e, t = !1) => t ? _mkUriSafe(_encode(e)) : _encode(e),
  encodeURI = e => encode(e, !0),
  re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,
  cb_btou = e => {
    switch (e.length) {
      case 4:
        var t = ((7 & e.charCodeAt(0)) << 18 | (63 & e.charCodeAt(1)) << 12 | (63 & e.charCodeAt(2)) << 6 | 63 & e.charCodeAt(3)) - 65536;
        return _fromCC(55296 + (t >>> 10)) + _fromCC(56320 + (1023 & t));
      case 3:
        return _fromCC((15 & e.charCodeAt(0)) << 12 | (63 & e.charCodeAt(1)) << 6 | 63 & e.charCodeAt(2));
      default:
        return _fromCC((31 & e.charCodeAt(0)) << 6 | 63 & e.charCodeAt(1))
    }
  },
  btou = e => e.replace(re_btou, cb_btou),
  atobPolyfill = e => {
    if (e = e.replace(/\s+/g, ""), !b64re.test(e)) throw new TypeError("malformed base64.");
    e += "==".slice(2 - (3 & e.length));
    let t, n, o, r = "";
    for (let i = 0; i < e.length;) t = b64tab[e.charAt(i++)] << 18 | b64tab[e.charAt(i++)] << 12 | (n = b64tab[e.charAt(i++)]) << 6 | (o = b64tab[e.charAt(i++)]), r += 64 === n ? _fromCC(t >> 16 & 255) : 64 === o ? _fromCC(t >> 16 & 255, t >> 8 & 255) : _fromCC(t >> 16 & 255, t >> 8 & 255, 255 & t);
    return r
  },
  _atob = _hasatob ? e => atob(_tidyB64(e)) : _hasBuffer ? e => Buffer.from(e, "base64").toString("binary") : atobPolyfill,
  _toUint8Array = _hasBuffer ? e => _U8Afrom(Buffer.from(e, "base64")) : e => _U8Afrom(_atob(e).split("").map((e => e.charCodeAt(0)))),
  toUint8Array = e => _toUint8Array(_unURI(e)),
  _decode = _hasBuffer ? e => Buffer.from(e, "base64").toString("utf8") : _TD ? e => _TD.decode(_toUint8Array(e)) : e => btou(_atob(e)),
  _unURI = e => _tidyB64(e.replace(/[-_]/g, (e => "-" == e ? "+" : "/"))),
  decode = e => _decode(_unURI(e)),
  isValid$3 = e => {
    if ("string" != typeof e) return !1;
    const t = e.replace(/\s+/g, "").replace(/={0,2}$/, "");
    return !/[^\s0-9a-zA-Z\+/]/.test(t) || !/[^\s0-9a-zA-Z\-_]/.test(t)
  },
  _noEnum = e => ({
    value: e,
    enumerable: !1,
    writable: !0,
    configurable: !0
  }),
  extendString = function () {
    const e = (e, t) => Object.defineProperty(String.prototype, e, _noEnum(t));
    e("fromBase64", (function () {
      return decode(this)
    })), e("toBase64", (function (e) {
      return encode(this, e)
    })), e("toBase64URI", (function () {
      return encode(this, !0)
    })), e("toBase64URL", (function () {
      return encode(this, !0)
    })), e("toUint8Array", (function () {
      return toUint8Array(this)
    }))
  },
  extendUint8Array = function () {
    const e = (e, t) => Object.defineProperty(Uint8Array.prototype, e, _noEnum(t));
    e("toBase64", (function (e) {
      return fromUint8Array(this, e)
    })), e("toBase64URI", (function () {
      return fromUint8Array(this, !0)
    })), e("toBase64URL", (function () {
      return fromUint8Array(this, !0)
    }))
  },
  extendBuiltins = () => {
    extendString(), extendUint8Array()
  },
  gBase64 = {
    version: version,
    VERSION: VERSION,
    atob: _atob,
    atobPolyfill: atobPolyfill,
    btoa: _btoa,
    btoaPolyfill: btoaPolyfill,
    fromBase64: decode,
    toBase64: encode,
    encode: encode,
    encodeURI: encodeURI,
    encodeURL: encodeURI,
    utob: utob,
    btou: btou,
    decode: decode,
    isValid: isValid$3,
    fromUint8Array: fromUint8Array,
    toUint8Array: toUint8Array,
    extendString: extendString,
    extendUint8Array: extendUint8Array,
    extendBuiltins: extendBuiltins
  };

function getDefaultExportFromCjs(e) {
  return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e
}
var cosWxSdkV5_minExports = {},
  cosWxSdkV5_min = {
    get exports() {
      return cosWxSdkV5_minExports
    },
    set exports(e) {
      cosWxSdkV5_minExports = e
    }
  };
(function (module, exports) {
  var t2;
  window, t2 = function () {
    return function (e) {
      var t = {};

      function n(o) {
        if (t[o]) return t[o].exports;
        var r = t[o] = {
          i: o,
          l: !1,
          exports: {}
        };
        return e[o].call(r.exports, r, r.exports, n), r.l = !0, r.exports
      }
      return n.m = e, n.c = t, n.d = function (e, t, o) {
        n.o(e, t) || Object.defineProperty(e, t, {
          enumerable: !0,
          get: o
        })
      }, n.r = function (e) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
          value: "Module"
        }), Object.defineProperty(e, "__esModule", {
          value: !0
        })
      }, n.t = function (e, t) {
        if (1 & t && (e = n(e)), 8 & t) return e;
        if (4 & t && "object" == typeof e && e && e.__esModule) return e;
        var o = Object.create(null);
        if (n.r(o), Object.defineProperty(o, "default", {
            enumerable: !0,
            value: e
          }), 2 & t && "string" != typeof e)
          for (var r in e) n.d(o, r, function (t) {
            return e[t]
          }.bind(null, r));
        return o
      }, n.n = function (e) {
        var t = e && e.__esModule ? function () {
          return e.default
        } : function () {
          return e
        };
        return n.d(t, "a", t), t
      }, n.o = function (e, t) {
        return Object.prototype.hasOwnProperty.call(e, t)
      }, n.p = "/Users/tianfeng/Documents/项目/sdk/cos-wx-sdk-v5/demo/lib", n(n.s = 10)
    }([function (e, t, n) {
      (function (t) {
        function o() {
          /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
          o = function () {
            return e
          };
          var e = {},
            t = Object.prototype,
            n = t.hasOwnProperty,
            r = Object.defineProperty || function (e, t, n) {
              e[t] = n.value
            },
            a = "function" == typeof Symbol ? Symbol : {},
            s = a.iterator || "@@iterator",
            c = a.asyncIterator || "@@asyncIterator",
            l = a.toStringTag || "@@toStringTag";

          function u(e, t, n) {
            return Object.defineProperty(e, t, {
              value: n,
              enumerable: !0,
              configurable: !0,
              writable: !0
            }), e[t]
          }
          try {
            u({}, "")
          } catch (R) {
            u = function (e, t, n) {
              return e[t] = n
            }
          }

          function d(e, t, n, o) {
            var i = t && t.prototype instanceof h ? t : h,
              a = Object.create(i.prototype),
              s = new E(o || []);
            return r(a, "_invoke", {
              value: S(e, n, s)
            }), a
          }

          function p(e, t, n) {
            try {
              return {
                type: "normal",
                arg: e.call(t, n)
              }
            } catch (o) {
              return {
                type: "throw",
                arg: o
              }
            }
          }
          e.wrap = d;
          var f = {};

          function h() {}

          function m() {}

          function g() {}
          var y = {};
          u(y, s, (function () {
            return this
          }));
          var v = Object.getPrototypeOf,
            _ = v && v(v(T([])));
          _ && _ !== t && n.call(_, s) && (y = _);
          var x = g.prototype = h.prototype = Object.create(y);

          function k(e) {
            ["next", "throw", "return"].forEach((function (t) {
              u(e, t, (function (e) {
                return this._invoke(t, e)
              }))
            }))
          }

          function b(e, t) {
            function o(r, a, s, c) {
              var l = p(e[r], e, a);
              if ("throw" !== l.type) {
                var u = l.arg,
                  d = u.value;
                return d && "object" == i(d) && n.call(d, "__await") ? t.resolve(d.__await).then((function (e) {
                  o("next", e, s, c)
                }), (function (e) {
                  o("throw", e, s, c)
                })) : t.resolve(d).then((function (e) {
                  u.value = e, s(u)
                }), (function (e) {
                  return o("throw", e, s, c)
                }))
              }
              c(l.arg)
            }
            var a;
            r(this, "_invoke", {
              value: function (e, n) {
                function r() {
                  return new t((function (t, r) {
                    o(e, n, t, r)
                  }))
                }
                return a = a ? a.then(r, r) : r()
              }
            })
          }

          function S(e, t, n) {
            var o = "suspendedStart";
            return function (r, i) {
              if ("executing" === o) throw new Error("Generator is already running");
              if ("completed" === o) {
                if ("throw" === r) throw i;
                return {
                  value: void 0,
                  done: !0
                }
              }
              for (n.method = r, n.arg = i;;) {
                var a = n.delegate;
                if (a) {
                  var s = O(a, n);
                  if (s) {
                    if (s === f) continue;
                    return s
                  }
                }
                if ("next" === n.method) n.sent = n._sent = n.arg;
                else if ("throw" === n.method) {
                  if ("suspendedStart" === o) throw o = "completed", n.arg;
                  n.dispatchException(n.arg)
                } else "return" === n.method && n.abrupt("return", n.arg);
                o = "executing";
                var c = p(e, t, n);
                if ("normal" === c.type) {
                  if (o = n.done ? "completed" : "suspendedYield", c.arg === f) continue;
                  return {
                    value: c.arg,
                    done: n.done
                  }
                }
                "throw" === c.type && (o = "completed", n.method = "throw", n.arg = c.arg)
              }
            }
          }

          function O(e, t) {
            var n = e.iterator[t.method];
            if (void 0 === n) {
              if (t.delegate = null, "throw" === t.method) {
                if (e.iterator.return && (t.method = "return", t.arg = void 0, O(e, t), "throw" === t.method)) return f;
                t.method = "throw", t.arg = new TypeError("The iterator does not provide a 'throw' method")
              }
              return f
            }
            var o = p(n, e.iterator, t.arg);
            if ("throw" === o.type) return t.method = "throw", t.arg = o.arg, t.delegate = null, f;
            var r = o.arg;
            return r ? r.done ? (t[e.resultName] = r.value, t.next = e.nextLoc, "return" !== t.method && (t.method = "next", t.arg = void 0), t.delegate = null, f) : r : (t.method = "throw", t.arg = new TypeError("iterator result is not an object"), t.delegate = null, f)
          }

          function C(e) {
            var t = {
              tryLoc: e[0]
            };
            1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t)
          }

          function w(e) {
            var t = e.completion || {};
            t.type = "normal", delete t.arg, e.completion = t
          }

          function E(e) {
            this.tryEntries = [{
              tryLoc: "root"
            }], e.forEach(C, this), this.reset(!0)
          }

          function T(e) {
            if (e) {
              var t = e[s];
              if (t) return t.call(e);
              if ("function" == typeof e.next) return e;
              if (!isNaN(e.length)) {
                var o = -1,
                  r = function t() {
                    for (; ++o < e.length;)
                      if (n.call(e, o)) return t.value = e[o], t.done = !1, t;
                    return t.value = void 0, t.done = !0, t
                  };
                return r.next = r
              }
            }
            return {
              next: A
            }
          }

          function A() {
            return {
              value: void 0,
              done: !0
            }
          }
          return m.prototype = g, r(x, "constructor", {
            value: g,
            configurable: !0
          }), r(g, "constructor", {
            value: m,
            configurable: !0
          }), m.displayName = u(g, l, "GeneratorFunction"), e.isGeneratorFunction = function (e) {
            var t = "function" == typeof e && e.constructor;
            return !!t && (t === m || "GeneratorFunction" === (t.displayName || t.name))
          }, e.mark = function (e) {
            return Object.setPrototypeOf ? Object.setPrototypeOf(e, g) : (e.__proto__ = g, u(e, l, "GeneratorFunction")), e.prototype = Object.create(x), e
          }, e.awrap = function (e) {
            return {
              __await: e
            }
          }, k(b.prototype), u(b.prototype, c, (function () {
            return this
          })), e.AsyncIterator = b, e.async = function (t, n, o, r, i) {
            void 0 === i && (i = Promise);
            var a = new b(d(t, n, o, r), i);
            return e.isGeneratorFunction(n) ? a : a.next().then((function (e) {
              return e.done ? e.value : a.next()
            }))
          }, k(x), u(x, l, "Generator"), u(x, s, (function () {
            return this
          })), u(x, "toString", (function () {
            return "[object Generator]"
          })), e.keys = function (e) {
            var t = Object(e),
              n = [];
            for (var o in t) n.push(o);
            return n.reverse(),
              function e() {
                for (; n.length;) {
                  var o = n.pop();
                  if (o in t) return e.value = o, e.done = !1, e
                }
                return e.done = !0, e
              }
          }, e.values = T, E.prototype = {
            constructor: E,
            reset: function (e) {
              if (this.prev = 0, this.next = 0, this.sent = this._sent = void 0, this.done = !1, this.delegate = null, this.method = "next", this.arg = void 0, this.tryEntries.forEach(w), !e)
                for (var t in this) "t" === t.charAt(0) && n.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = void 0)
            },
            stop: function () {
              this.done = !0;
              var e = this.tryEntries[0].completion;
              if ("throw" === e.type) throw e.arg;
              return this.rval
            },
            dispatchException: function (e) {
              if (this.done) throw e;
              var t = this;

              function o(n, o) {
                return a.type = "throw", a.arg = e, t.next = n, o && (t.method = "next", t.arg = void 0), !!o
              }
              for (var r = this.tryEntries.length - 1; r >= 0; --r) {
                var i = this.tryEntries[r],
                  a = i.completion;
                if ("root" === i.tryLoc) return o("end");
                if (i.tryLoc <= this.prev) {
                  var s = n.call(i, "catchLoc"),
                    c = n.call(i, "finallyLoc");
                  if (s && c) {
                    if (this.prev < i.catchLoc) return o(i.catchLoc, !0);
                    if (this.prev < i.finallyLoc) return o(i.finallyLoc)
                  } else if (s) {
                    if (this.prev < i.catchLoc) return o(i.catchLoc, !0)
                  } else {
                    if (!c) throw new Error("try statement without catch or finally");
                    if (this.prev < i.finallyLoc) return o(i.finallyLoc)
                  }
                }
              }
            },
            abrupt: function (e, t) {
              for (var o = this.tryEntries.length - 1; o >= 0; --o) {
                var r = this.tryEntries[o];
                if (r.tryLoc <= this.prev && n.call(r, "finallyLoc") && this.prev < r.finallyLoc) {
                  var i = r;
                  break
                }
              }
              i && ("break" === e || "continue" === e) && i.tryLoc <= t && t <= i.finallyLoc && (i = null);
              var a = i ? i.completion : {};
              return a.type = e, a.arg = t, i ? (this.method = "next", this.next = i.finallyLoc, f) : this.complete(a)
            },
            complete: function (e, t) {
              if ("throw" === e.type) throw e.arg;
              return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), f
            },
            finish: function (e) {
              for (var t = this.tryEntries.length - 1; t >= 0; --t) {
                var n = this.tryEntries[t];
                if (n.finallyLoc === e) return this.complete(n.completion, n.afterLoc), w(n), f
              }
            },
            catch: function (e) {
              for (var t = this.tryEntries.length - 1; t >= 0; --t) {
                var n = this.tryEntries[t];
                if (n.tryLoc === e) {
                  var o = n.completion;
                  if ("throw" === o.type) {
                    var r = o.arg;
                    w(n)
                  }
                  return r
                }
              }
              throw new Error("illegal catch attempt")
            },
            delegateYield: function (e, t, n) {
              return this.delegate = {
                iterator: T(e),
                resultName: t,
                nextLoc: n
              }, "next" === this.method && (this.arg = void 0), f
            }
          }, e
        }

        function r(e, t, n, o, r, i, a) {
          try {
            var s = e[i](a),
              c = s.value
          } catch (l) {
            return void n(l)
          }
          s.done ? t(c) : Promise.resolve(c).then(o, r)
        }

        function i(e) {
          return (i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
            return typeof e
          } : function (e) {
            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
          })(e)
        }
        var a = n(12),
          s = n(15),
          c = n(16),
          l = n(21),
          u = n(5).btoa,
          d = wx$1.getFileSystemManager(),
          p = n(6);

        function f(e) {
          return encodeURIComponent(e).replace(/!/g, "%21").replace(/'/g, "%27").replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/\*/g, "%2A")
        }

        function h(e, t) {
          var n = [];
          for (var o in e) e.hasOwnProperty(o) && n.push(t ? f(o).toLowerCase() : o);
          return n.sort((function (e, t) {
            return (e = e.toLowerCase()) === (t = t.toLowerCase()) ? 0 : e > t ? 1 : -1
          }))
        }
        var m = ["cache-control", "content-disposition", "content-encoding", "content-length", "content-md5", "expect", "expires", "host", "if-match", "if-modified-since", "if-none-match", "if-unmodified-since", "origin", "range", "transfer-encoding"],
          g = function () {},
          y = function (e) {
            var t = {};
            for (var n in e) e.hasOwnProperty(n) && void 0 !== e[n] && null !== e[n] && (t[n] = e[n]);
            return t
          };

        function v(e) {
          return b(e, (function (e) {
            return "object" === i(e) && null !== e ? v(e) : e
          }))
        }

        function _(e, t) {
          return k(t, (function (n, o) {
            e[o] = t[o]
          })), e
        }

        function x(e) {
          return e instanceof Array
        }

        function k(e, t) {
          for (var n in e) e.hasOwnProperty(n) && t(e[n], n)
        }

        function b(e, t) {
          var n = x(e) ? [] : {};
          for (var o in e) e.hasOwnProperty(o) && (n[o] = t(e[o], o));
          return n
        }
        var S, O, C = function (e, t) {
            if (t = _({}, t), "getAuth" !== e && "getV4Auth" !== e && "getObjectUrl" !== e) {
              var n = t.Headers || {};
              t && "object" === i(t) && (function () {
                for (var e in t) t.hasOwnProperty(e) && e.indexOf("x-cos-") > -1 && (n[e] = t[e])
              }(), P.each({
                "x-cos-mfa": "MFA",
                "Content-MD5": "ContentMD5",
                "Content-Length": "ContentLength",
                "Content-Type": "ContentType",
                Expect: "Expect",
                Expires: "Expires",
                "Cache-Control": "CacheControl",
                "Content-Disposition": "ContentDisposition",
                "Content-Encoding": "ContentEncoding",
                Range: "Range",
                "If-Modified-Since": "IfModifiedSince",
                "If-Unmodified-Since": "IfUnmodifiedSince",
                "If-Match": "IfMatch",
                "If-None-Match": "IfNoneMatch",
                "x-cos-copy-source": "CopySource",
                "x-cos-copy-source-Range": "CopySourceRange",
                "x-cos-metadata-directive": "MetadataDirective",
                "x-cos-copy-source-If-Modified-Since": "CopySourceIfModifiedSince",
                "x-cos-copy-source-If-Unmodified-Since": "CopySourceIfUnmodifiedSince",
                "x-cos-copy-source-If-Match": "CopySourceIfMatch",
                "x-cos-copy-source-If-None-Match": "CopySourceIfNoneMatch",
                "x-cos-acl": "ACL",
                "x-cos-grant-read": "GrantRead",
                "x-cos-grant-write": "GrantWrite",
                "x-cos-grant-full-control": "GrantFullControl",
                "x-cos-grant-read-acp": "GrantReadAcp",
                "x-cos-grant-write-acp": "GrantWriteAcp",
                "x-cos-storage-class": "StorageClass",
                "x-cos-traffic-limit": "TrafficLimit",
                "x-cos-mime-limit": "MimeLimit",
                "x-cos-forbid-overwrite": "ForbidOverwrite",
                "x-cos-server-side-encryption-customer-algorithm": "SSECustomerAlgorithm",
                "x-cos-server-side-encryption-customer-key": "SSECustomerKey",
                "x-cos-server-side-encryption-customer-key-MD5": "SSECustomerKeyMD5",
                "x-cos-server-side-encryption": "ServerSideEncryption",
                "x-cos-server-side-encryption-cos-kms-key-id": "SSEKMSKeyId",
                "x-cos-server-side-encryption-context": "SSEContext"
              }, (function (e, o) {
                void 0 !== t[e] && (n[o] = t[e])
              })), t.Headers = y(n))
            }
            return t
          },
          w = function (e) {
            return new Promise((function (t, n) {
              d.readFile({
                filePath: e,
                success: function (e) {
                  t(e.data)
                },
                fail: function (e) {
                  n((null == e ? void 0 : e.errMsg) || "")
                }
              })
            }))
          },
          E = (S = o().mark((function e(t, n, r) {
            return o().wrap((function (e) {
              for (;;) switch (e.prev = e.next) {
                case 0:
                  if ("postObject" !== t) {
                    e.next = 4;
                    break
                  }
                  r(), e.next = 21;
                  break;
                case 4:
                  if ("putObject" !== t) {
                    e.next = 20;
                    break
                  }
                  if (void 0 !== n.Body || !n.FilePath) {
                    e.next = 17;
                    break
                  }
                  return e.prev = 6, e.next = 9, w(n.FilePath);
                case 9:
                  n.Body = e.sent, e.next = 17;
                  break;
                case 12:
                  return e.prev = 12, e.t0 = e.catch(6), n.Body = void 0, r({
                    error: "readFile error, ".concat(e.t0)
                  }), e.abrupt("return");
                case 17:
                  void 0 !== n.Body ? (n.ContentLength = n.Body.byteLength, r(null, n.ContentLength)) : r({
                    error: "missing param Body"
                  }), e.next = 21;
                  break;
                case 20:
                  n.FilePath ? d.stat({
                    path: n.FilePath,
                    success: function (e) {
                      var t = e.stats;
                      n.FileStat = t, n.FileStat.FilePath = n.FilePath;
                      var o = t.isDirectory() ? 0 : t.size;
                      n.ContentLength = o = o || 0, r(null, o)
                    },
                    fail: function (e) {
                      r(e)
                    }
                  }) : r({
                    error: "missing param FilePath"
                  });
                case 21:
                case "end":
                  return e.stop()
              }
            }), e, null, [
              [6, 12]
            ])
          })), O = function () {
            var e = this,
              t = arguments;
            return new Promise((function (n, o) {
              var i = S.apply(e, t);

              function a(e) {
                r(i, n, o, a, s, "next", e)
              }

              function s(e) {
                r(i, n, o, a, s, "throw", e)
              }
              a(void 0)
            }))
          }, function (e, t, n) {
            return O.apply(this, arguments)
          }),
          T = function (e) {
            return Date.now() + (e || 0)
          },
          A = function (e, t) {
            e = e.split("."), t = t.split(".");
            for (var n = Math.max(e.length, t.length); e.length < n;) e.push("0");
            for (; t.length < n;) t.push("0");
            for (var o = 0; o < n; o++) {
              var r = parseInt(e[o]),
                i = parseInt(t[o]);
              if (r > i) return 1;
              if (r < i) return -1
            }
            return 0
          },
          R = function () {
            var e = wx$1.getSystemInfoSync(),
              t = A(e.SDKVersion, "2.10.0") >= 0;
            return !t && e.platform,
              function () {
                return t
              }
          }(),
          P = {
            noop: g,
            formatParams: C,
            apiWrapper: function (e, n) {
              return function (o, r) {
                var i, a = this;
                if ("function" == typeof o && (r = o, o = {}), o = C(e, o), a.options.EnableTracker)
                  if ("sliceUploadFile" === o.calledBySdk) i = o.tracker && o.tracker.generateSubTracker({
                    apiName: e
                  });
                  else if (["uploadFile", "uploadFiles"].includes(e)) i = null;
                else {
                  var s = -1;
                  o.Body && (s = "string" == typeof o.Body ? o.Body.length : o.Body.size || o.Body.byteLength || -1), i = new p({
                    bucket: o.Bucket,
                    region: o.Region,
                    apiName: e,
                    fileKey: o.Key,
                    fileSize: s,
                    deepTracker: a.options.DeepTracker,
                    customId: a.options.CustomId,
                    delay: a.options.TrackerDelay
                  })
                }
                o.tracker = i;
                var c = function (e) {
                    return e && e.headers && (e.headers["x-cos-request-id"] && (e.RequestId = e.headers["x-cos-request-id"]), e.headers["x-ci-request-id"] && (e.RequestId = e.headers["x-ci-request-id"]), e.headers["x-cos-version-id"] && (e.VersionId = e.headers["x-cos-version-id"]), e.headers["x-cos-delete-marker"] && (e.DeleteMarker = e.headers["x-cos-delete-marker"])), e
                  },
                  l = function (e, t) {
                    i && i.formatResult(e, t), r && r(c(e), c(t))
                  },
                  u = function () {
                    if ("getService" !== e && "abortUploadTask" !== e) {
                      var t = function (e, t) {
                        var n = t.Bucket,
                          o = t.Region,
                          r = t.Key;
                        if (e.indexOf("Bucket") > -1 || "deleteMultipleObject" === e || "multipartList" === e || "listObjectVersions" === e) {
                          if (!n) return "Bucket";
                          if (!o) return "Region"
                        } else if (e.indexOf("Object") > -1 || e.indexOf("multipart") > -1 || "sliceUploadFile" === e || "abortUploadTask" === e) {
                          if (!n) return "Bucket";
                          if (!o) return "Region";
                          if (!r) return "Key"
                        }
                        return !1
                      }(e, o);
                      if (t) return "missing param " + t;
                      if (o.Region) {
                        if (o.Region.indexOf("cos.") > -1) return 'param Region should not be start with "cos."';
                        if (!/^([a-z\d-]+)$/.test(o.Region)) return "Region format error.";
                        !a.options.CompatibilityMode && -1 === o.Region.indexOf("-") && "yfb" !== o.Region && "default" !== o.Region && o.Region
                      }
                      if (o.Bucket) {
                        if (!/^([a-z\d-]+)-(\d+)$/.test(o.Bucket))
                          if (o.AppId) o.Bucket = o.Bucket + "-" + o.AppId;
                          else {
                            if (!a.options.AppId) return 'Bucket should format as "test-1250000000".';
                            o.Bucket = o.Bucket + "-" + a.options.AppId
                          } o.AppId && delete o.AppId
                      }
                      o.Key && "/" === o.Key.substr(0, 1) && (o.Key = o.Key.substr(1))
                    }
                  }(),
                  d = ["getAuth", "getObjectUrl"].includes(e),
                  f = t.Promise;
                if (!d && f && !r) return new f((function (e, t) {
                  if (r = function (n, o) {
                      n ? t(n) : e(o)
                    }, u) return l({
                    error: u
                  });
                  n.call(a, o, l)
                }));
                if (u) return l({
                  error: u
                });
                var h = n.call(a, o, l);
                return d ? h : void 0
              }
            },
            xml2json: c,
            json2xml: l,
            md5: a,
            clearKey: y,
            fileSlice: function (e, t, n, o) {
              e ? d.readFile({
                filePath: e,
                position: t,
                length: n - t,
                success: function (e) {
                  o(e.data)
                },
                fail: function () {
                  o(null)
                }
              }) : o(null)
            },
            getBodyMd5: function (e, t, n) {
              n = n || g, e && t && t instanceof ArrayBuffer ? P.getFileMd5(t, (function (e, t) {
                n(t)
              })) : n()
            },
            getFileMd5: function (e, t) {
              var n = a(e);
              return t && t(n), n
            },
            binaryBase64: function (e) {
              var t, n, o, r = "";
              for (t = 0, n = e.length / 2; t < n; t++) o = parseInt(e[2 * t] + e[2 * t + 1], 16), r += String.fromCharCode(o);
              return u(r)
            },
            extend: _,
            isArray: x,
            isInArray: function (e, t) {
              for (var n = !1, o = 0; o < e.length; o++)
                if (t === e[o]) {
                  n = !0;
                  break
                } return n
            },
            makeArray: function (e) {
              return x(e) ? e : [e]
            },
            each: k,
            map: b,
            filter: function (e, t) {
              var n = x(e),
                o = n ? [] : {};
              for (var r in e) e.hasOwnProperty(r) && t(e[r], r) && (n ? o.push(e[r]) : o[r] = e[r]);
              return o
            },
            clone: v,
            attr: function (e, t, n) {
              return e && t in e ? e[t] : n
            },
            uuid: function () {
              var e = function () {
                return (65536 * (1 + Math.random()) | 0).toString(16).substring(1)
              };
              return e() + e() + "-" + e() + "-" + e() + "-" + e() + "-" + e() + e() + e()
            },
            camSafeUrlEncode: f,
            throttleOnProgress: function (e, t) {
              var n, o, r = this,
                i = 0,
                a = 0,
                s = Date.now();

              function c() {
                if (o = 0, t && "function" == typeof t) {
                  n = Date.now();
                  var r, c = Math.max(0, Math.round((a - i) / ((n - s) / 1e3) * 100) / 100) || 0;
                  r = 0 === a && 0 === e ? 1 : Math.floor(a / e * 100) / 100 || 0, s = n, i = a;
                  try {
                    t({
                      loaded: a,
                      total: e,
                      speed: c,
                      percent: r
                    })
                  } catch (l) {}
                }
              }
              return function (t, n) {
                if (t && (a = t.loaded, e = t.total), n) clearTimeout(o), c();
                else {
                  if (o) return;
                  o = setTimeout(c, r.options.ProgressInterval)
                }
              }
            },
            getFileSize: E,
            getFileSizeByPath: function (e) {
              return new Promise((function (t, n) {
                d.stat({
                  path: e,
                  success: function (e) {
                    var n = e.stats,
                      o = n.isDirectory() ? 0 : n.size;
                    t(o)
                  },
                  fail: function (e) {
                    n((null == e ? void 0 : e.errMsg) || "")
                  }
                })
              }))
            },
            getSkewTime: T,
            obj2str: function (e, t) {
              var n, o, r, i = [],
                a = h(e);
              for (n = 0; n < a.length; n++) r = void 0 === e[o = a[n]] || null === e[o] ? "" : "" + e[o], o = t ? f(o).toLowerCase() : f(o), r = f(r) || "", i.push(o + "=" + r);
              return i.join("&")
            },
            getAuth: function (e) {
              var t, n = (e = e || {}).SecretId,
                o = e.SecretKey,
                r = e.KeyTime,
                i = (e.method || e.Method || "get").toLowerCase(),
                a = v(e.Query || e.params || {}),
                c = function (e) {
                  var t = {};
                  for (var n in e) {
                    var o = n.toLowerCase();
                    (o.indexOf("x-cos-") > -1 || m.indexOf(o) > -1) && (t[n] = e[n])
                  }
                  return t
                }(v(e.Headers || e.headers || {})),
                l = e.Key || "";
              e.UseRawKey ? t = e.Pathname || e.pathname || "/" + l : 0 !== (t = e.Pathname || e.pathname || l).indexOf("/") && (t = "/" + t);
              var u = !1 !== e.ForceSignHost;
              if (!c.Host && !c.host && e.Bucket && e.Region && u && (c.Host = e.Bucket + ".cos." + e.Region + ".myqcloud.com"), n && o) {
                var d = Math.round(T(e.SystemClockOffset) / 1e3) - 1,
                  p = d,
                  f = e.Expires || e.expires;
                p += void 0 === f ? 900 : 1 * f || 0;
                var g = n,
                  y = r || d + ";" + p,
                  _ = r || d + ";" + p,
                  x = h(c, !0).join(";").toLowerCase(),
                  k = h(a, !0).join(";").toLowerCase(),
                  b = s.HmacSHA1(_, o).toString(),
                  S = [i, t, P.obj2str(a, !0), P.obj2str(c, !0), ""].join("\n"),
                  O = ["sha1", y, s.SHA1(S).toString(), ""].join("\n");
                return ["q-sign-algorithm=sha1", "q-ak=" + g, "q-sign-time=" + y, "q-key-time=" + _, "q-header-list=" + x, "q-url-param-list=" + k, "q-signature=" + s.HmacSHA1(O, b).toString()].join("&")
              }
            },
            compareVersion: A,
            canFileSlice: R,
            isCIHost: function (e) {
              return /^https?:\/\/([^/]+\.)?ci\.[^/]+/.test(e)
            },
            error: function (e, t) {
              var n = e;
              return e.message = e.message || null, "string" == typeof t ? (e.error = t, e.message = t) : "object" === i(t) && null !== t && (_(e, t), (t.code || t.name) && (e.code = t.code || t.name), t.message && (e.message = t.message), t.stack && (e.stack = t.stack)), "function" == typeof Object.defineProperty && (Object.defineProperty(e, "name", {
                writable: !0,
                enumerable: !1
              }), Object.defineProperty(e, "message", {
                enumerable: !0
              })), e.name = t && t.name || e.name || e.code || "Error", e.code || (e.code = e.name), e.error || (e.error = v(n)), e
            },
            getSourceParams: function (e) {
              var t = this.options.CopySourceParser;
              if (t) return t(e);
              var n = e.match(/^([^.]+-\d+)\.cos(v6|-cdc|-internal)?\.([^.]+)\.((myqcloud\.com)|(tencentcos\.cn))\/(.+)$/);
              return n ? {
                Bucket: n[1],
                Region: n[3],
                Key: n[7]
              } : null
            }
          };
        e.exports = P
      }).call(this, n(2))
    }, function (e, t, n) {
      function o(e, t) {
        return void 0 === t && (t = Object), t && "function" == typeof t.freeze ? t.freeze(e) : e
      }
      var r = o({
          HTML: "text/html",
          isHTML: function (e) {
            return e === r.HTML
          },
          XML_APPLICATION: "application/xml",
          XML_TEXT: "text/xml",
          XML_XHTML_APPLICATION: "application/xhtml+xml",
          XML_SVG_IMAGE: "image/svg+xml"
        }),
        i = o({
          HTML: "http://www.w3.org/1999/xhtml",
          isHTML: function (e) {
            return e === i.HTML
          },
          SVG: "http://www.w3.org/2000/svg",
          XML: "http://www.w3.org/XML/1998/namespace",
          XMLNS: "http://www.w3.org/2000/xmlns/"
        });
      t.assign = function (e, t) {
        if (null === e || "object" != typeof e) throw new TypeError("target is not an object");
        for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]);
        return e
      }, t.find = function (e, t, n) {
        if (void 0 === n && (n = Array.prototype), e && "function" == typeof n.find) return n.find.call(e, t);
        for (var o = 0; o < e.length; o++)
          if (Object.prototype.hasOwnProperty.call(e, o)) {
            var r = e[o];
            if (t.call(void 0, r, o, e)) return r
          }
      }, t.freeze = o, t.MIME_TYPE = r, t.NAMESPACE = i
    }, function (e, t) {
      var n;
      n = function () {
        return this
      }();
      try {
        n = n || new Function("return this")()
      } catch (o) {
        "object" == typeof window && (n = window)
      }
      e.exports = n
    }, function (e, t) {
      e.exports = function (e) {
        return e.webpackPolyfill || (e.deprecate = function () {}, e.paths = [], e.children || (e.children = []), Object.defineProperty(e, "loaded", {
          enumerable: !0,
          get: function () {
            return e.l
          }
        }), Object.defineProperty(e, "id", {
          enumerable: !0,
          get: function () {
            return e.i
          }
        }), e.webpackPolyfill = 1), e
      }
    }, function (e, t, n) {
      var o = n(1),
        r = o.find,
        i = o.NAMESPACE;

      function a(e) {
        return "" !== e
      }

      function s(e, t) {
        return e.hasOwnProperty(t) || (e[t] = !0), e
      }

      function c(e) {
        if (!e) return [];
        var t, n = (t = e) ? t.split(/[\t\n\f\r ]+/).filter(a) : [];
        return Object.keys(n.reduce(s, {}))
      }

      function l(e, t) {
        for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n])
      }

      function u(e, t) {
        var n = e.prototype;
        if (!(n instanceof t)) {
          let o = function () {};
          o.prototype = t.prototype, l(n, o = new o), e.prototype = n = o
        }
        n.constructor != e && (n.constructor = e)
      }
      var d = {},
        p = d.ELEMENT_NODE = 1,
        f = d.ATTRIBUTE_NODE = 2,
        h = d.TEXT_NODE = 3,
        m = d.CDATA_SECTION_NODE = 4,
        g = d.ENTITY_REFERENCE_NODE = 5,
        y = d.ENTITY_NODE = 6,
        v = d.PROCESSING_INSTRUCTION_NODE = 7,
        _ = d.COMMENT_NODE = 8,
        x = d.DOCUMENT_NODE = 9,
        k = d.DOCUMENT_TYPE_NODE = 10,
        b = d.DOCUMENT_FRAGMENT_NODE = 11,
        S = d.NOTATION_NODE = 12,
        O = {},
        C = {},
        w = (O.INDEX_SIZE_ERR = (C[1] = "Index size error", 1), O.DOMSTRING_SIZE_ERR = (C[2] = "DOMString size error", 2), O.HIERARCHY_REQUEST_ERR = (C[3] = "Hierarchy request error", 3)),
        E = (O.WRONG_DOCUMENT_ERR = (C[4] = "Wrong document", 4), O.INVALID_CHARACTER_ERR = (C[5] = "Invalid character", 5), O.NO_DATA_ALLOWED_ERR = (C[6] = "No data allowed", 6), O.NO_MODIFICATION_ALLOWED_ERR = (C[7] = "No modification allowed", 7), O.NOT_FOUND_ERR = (C[8] = "Not found", 8)),
        T = (O.NOT_SUPPORTED_ERR = (C[9] = "Not supported", 9), O.INUSE_ATTRIBUTE_ERR = (C[10] = "Attribute in use", 10));

      function A(e, t) {
        if (t instanceof Error) var n = t;
        else n = this, Error.call(this, C[e]), this.message = C[e], Error.captureStackTrace && Error.captureStackTrace(this, A);
        return n.code = e, t && (this.message = this.message + ": " + t), n
      }

      function R() {}

      function P(e, t) {
        this._node = e, this._refresh = t, I(this)
      }

      function I(e) {
        var t = e._node._inc || e._node.ownerDocument._inc;
        if (e._inc != t) {
          var n = e._refresh(e._node);
          ve(e, "length", n.length), l(n, e), e._inc = t
        }
      }

      function N() {}

      function M(e, t) {
        for (var n = e.length; n--;)
          if (e[n] === t) return n
      }

      function D(e, t, n, o) {
        if (o ? t[M(t, o)] = n : t[t.length++] = n, e) {
          n.ownerElement = e;
          var r = e.ownerDocument;
          r && (o && H(r, e, o), s = e, c = n, (a = r) && a._inc++, c.namespaceURI === i.XMLNS && (s._nsMap[c.prefix ? c.localName : ""] = c.value))
        }
        var a, s, c
      }

      function F(e, t, n) {
        var o = M(t, n);
        if (!(o >= 0)) throw new A(E, new Error(e.tagName + "@" + n));
        for (var r = t.length - 1; o < r;) t[o] = t[++o];
        if (t.length = r, e) {
          var i = e.ownerDocument;
          i && (H(i, e, n), n.ownerElement = null)
        }
      }

      function L() {}

      function U() {}

      function B(e) {
        return ("<" == e ? "&lt;" : ">" == e && "&gt;") || "&" == e && "&amp;" || '"' == e && "&quot;" || "&#" + e.charCodeAt() + ";"
      }

      function $(e, t) {
        if (t(e)) return !0;
        if (e = e.firstChild)
          do {
            if ($(e, t)) return !0
          } while (e = e.nextSibling)
      }

      function j() {
        this.ownerDocument = this
      }

      function H(e, t, n, o) {
        e && e._inc++, n.namespaceURI === i.XMLNS && delete t._nsMap[n.prefix ? n.localName : ""]
      }

      function Y(e, t, n) {
        if (e && e._inc) {
          e._inc++;
          var o = t.childNodes;
          if (n) o[o.length++] = n;
          else {
            for (var r = t.firstChild, i = 0; r;) o[i++] = r, r = r.nextSibling;
            o.length = i, delete o[o.length]
          }
        }
      }

      function z(e, t) {
        var n = t.previousSibling,
          o = t.nextSibling;
        return n ? n.nextSibling = o : e.firstChild = o, o ? o.previousSibling = n : e.lastChild = n, t.parentNode = null, t.previousSibling = null, t.nextSibling = null, Y(e.ownerDocument, e), t
      }

      function W(e) {
        return e && e.nodeType === U.DOCUMENT_TYPE_NODE
      }

      function V(e) {
        return e && e.nodeType === U.ELEMENT_NODE
      }

      function K(e) {
        return e && e.nodeType === U.TEXT_NODE
      }

      function G(e, t) {
        var n = e.childNodes || [];
        if (r(n, V) || W(t)) return !1;
        var o = r(n, W);
        return !(t && o && n.indexOf(o) > n.indexOf(t))
      }

      function q(e, t) {
        var n = e.childNodes || [];
        if (r(n, (function (e) {
            return V(e) && e !== t
          }))) return !1;
        var o = r(n, W);
        return !(t && o && n.indexOf(o) > n.indexOf(t))
      }

      function J(e, t, n) {
        var o = e.childNodes || [],
          i = t.childNodes || [];
        if (t.nodeType === U.DOCUMENT_FRAGMENT_NODE) {
          var a = i.filter(V);
          if (a.length > 1 || r(i, K)) throw new A(w, "More than one element or text in fragment");
          if (1 === a.length && !G(e, n)) throw new A(w, "Element in fragment can not be inserted before doctype")
        }
        if (V(t) && !G(e, n)) throw new A(w, "Only one element can be added and only after doctype");
        if (W(t)) {
          if (r(o, W)) throw new A(w, "Only one doctype is allowed");
          var s = r(o, V);
          if (n && o.indexOf(s) < o.indexOf(n)) throw new A(w, "Doctype can only be inserted before an element");
          if (!n && s) throw new A(w, "Doctype can not be appended since element is present")
        }
      }

      function X(e, t, n) {
        var o = e.childNodes || [],
          i = t.childNodes || [];
        if (t.nodeType === U.DOCUMENT_FRAGMENT_NODE) {
          var a = i.filter(V);
          if (a.length > 1 || r(i, K)) throw new A(w, "More than one element or text in fragment");
          if (1 === a.length && !q(e, n)) throw new A(w, "Element in fragment can not be inserted before doctype")
        }
        if (V(t) && !q(e, n)) throw new A(w, "Only one element can be added and only after doctype");
        if (W(t)) {
          if (r(o, (function (e) {
              return W(e) && e !== n
            }))) throw new A(w, "Only one doctype is allowed");
          var s = r(o, V);
          if (n && o.indexOf(s) < o.indexOf(n)) throw new A(w, "Doctype can only be inserted before an element")
        }
      }

      function Z(e, t, n, o) {
        (function (e, t, n) {
          if (!(o = e) || o.nodeType !== U.DOCUMENT_NODE && o.nodeType !== U.DOCUMENT_FRAGMENT_NODE && o.nodeType !== U.ELEMENT_NODE) throw new A(w, "Unexpected parent node type " + e.nodeType);
          var o;
          if (n && n.parentNode !== e) throw new A(E, "child not in parent");
          if (! function (e) {
              return e && (V(e) || K(e) || W(e) || e.nodeType === U.DOCUMENT_FRAGMENT_NODE || e.nodeType === U.COMMENT_NODE || e.nodeType === U.PROCESSING_INSTRUCTION_NODE)
            }(t) || W(t) && e.nodeType !== U.DOCUMENT_NODE) throw new A(w, "Unexpected node type " + t.nodeType + " for parent node type " + e.nodeType)
        })(e, t, n), e.nodeType === U.DOCUMENT_NODE && (o || J)(e, t, n);
        var r = t.parentNode;
        if (r && r.removeChild(t), t.nodeType === b) {
          var i = t.firstChild;
          if (null == i) return t;
          var a = t.lastChild
        } else i = a = t;
        var s = n ? n.previousSibling : e.lastChild;
        i.previousSibling = s, a.nextSibling = n, s ? s.nextSibling = i : e.firstChild = i, null == n ? e.lastChild = a : n.previousSibling = a;
        do {
          i.parentNode = e
        } while (i !== a && (i = i.nextSibling));
        return Y(e.ownerDocument || e, e), t.nodeType == b && (t.firstChild = t.lastChild = null), t
      }

      function Q() {
        this._nsMap = {}
      }

      function ee() {}

      function te() {}

      function ne() {}

      function oe() {}

      function re() {}

      function ie() {}

      function ae() {}

      function se() {}

      function ce() {}

      function le() {}

      function ue() {}

      function de() {}

      function pe(e, t) {
        var n = [],
          o = 9 == this.nodeType && this.documentElement || this,
          r = o.prefix,
          i = o.namespaceURI;
        if (i && null == r && null == (r = o.lookupPrefix(i))) var a = [{
          namespace: i,
          prefix: null
        }];
        return me(this, n, e, t, a), n.join("")
      }

      function fe(e, t, n) {
        var o = e.prefix || "",
          r = e.namespaceURI;
        if (!r) return !1;
        if ("xml" === o && r === i.XML || r === i.XMLNS) return !1;
        for (var a = n.length; a--;) {
          var s = n[a];
          if (s.prefix === o) return s.namespace !== r
        }
        return !0
      }

      function he(e, t, n) {
        e.push(" ", t, '="', n.replace(/[<>&"\t\n\r]/g, B), '"')
      }

      function me(e, t, n, o, r) {
        if (r || (r = []), o) {
          if (!(e = o(e))) return;
          if ("string" == typeof e) return void t.push(e)
        }
        switch (e.nodeType) {
          case p:
            var a = e.attributes,
              s = a.length,
              c = e.firstChild,
              l = e.tagName,
              u = l;
            if (!(n = i.isHTML(e.namespaceURI) || n) && !e.prefix && e.namespaceURI) {
              for (var d, y = 0; y < a.length; y++)
                if ("xmlns" === a.item(y).name) {
                  d = a.item(y).value;
                  break
                } if (!d)
                for (var S = r.length - 1; S >= 0; S--)
                  if ("" === (O = r[S]).prefix && O.namespace === e.namespaceURI) {
                    d = O.namespace;
                    break
                  } if (d !== e.namespaceURI)
                for (S = r.length - 1; S >= 0; S--) {
                  var O;
                  if ((O = r[S]).namespace === e.namespaceURI) {
                    O.prefix && (u = O.prefix + ":" + l);
                    break
                  }
                }
            }
            t.push("<", u);
            for (var C = 0; C < s; C++) "xmlns" == (w = a.item(C)).prefix ? r.push({
              prefix: w.localName,
              namespace: w.value
            }) : "xmlns" == w.nodeName && r.push({
              prefix: "",
              namespace: w.value
            });
            for (C = 0; C < s; C++) {
              var w, E, T;
              fe(w = a.item(C), 0, r) && (he(t, (E = w.prefix || "") ? "xmlns:" + E : "xmlns", T = w.namespaceURI), r.push({
                prefix: E,
                namespace: T
              })), me(w, t, n, o, r)
            }
            if (l === u && fe(e, 0, r) && (he(t, (E = e.prefix || "") ? "xmlns:" + E : "xmlns", T = e.namespaceURI), r.push({
                prefix: E,
                namespace: T
              })), c || n && !/^(?:meta|link|img|br|hr|input)$/i.test(l)) {
              if (t.push(">"), n && /^script$/i.test(l))
                for (; c;) c.data ? t.push(c.data) : me(c, t, n, o, r.slice()), c = c.nextSibling;
              else
                for (; c;) me(c, t, n, o, r.slice()), c = c.nextSibling;
              t.push("</", u, ">")
            } else t.push("/>");
            return;
          case x:
          case b:
            for (c = e.firstChild; c;) me(c, t, n, o, r.slice()), c = c.nextSibling;
            return;
          case f:
            return he(t, e.name, e.value);
          case h:
            return t.push(e.data.replace(/[<&>]/g, B));
          case m:
            return t.push("<![CDATA[", e.data, "]]>");
          case _:
            return t.push("\x3c!--", e.data, "--\x3e");
          case k:
            var A = e.publicId,
              R = e.systemId;
            if (t.push("<!DOCTYPE ", e.name), A) t.push(" PUBLIC ", A), R && "." != R && t.push(" ", R), t.push(">");
            else if (R && "." != R) t.push(" SYSTEM ", R, ">");
            else {
              var P = e.internalSubset;
              P && t.push(" [", P, "]"), t.push(">")
            }
            return;
          case v:
            return t.push("<?", e.target, " ", e.data, "?>");
          case g:
            return t.push("&", e.nodeName, ";");
          default:
            t.push("??", e.nodeName)
        }
      }

      function ge(e, t, n) {
        var o;
        switch (t.nodeType) {
          case p:
            (o = t.cloneNode(!1)).ownerDocument = e;
          case b:
            break;
          case f:
            n = !0
        }
        if (o || (o = t.cloneNode(!1)), o.ownerDocument = e, o.parentNode = null, n)
          for (var r = t.firstChild; r;) o.appendChild(ge(e, r, n)), r = r.nextSibling;
        return o
      }

      function ye(e, t, n) {
        var o = new t.constructor;
        for (var r in t)
          if (Object.prototype.hasOwnProperty.call(t, r)) {
            var i = t[r];
            "object" != typeof i && i != o[r] && (o[r] = i)
          } switch (t.childNodes && (o.childNodes = new R), o.ownerDocument = e, o.nodeType) {
          case p:
            var a = t.attributes,
              s = o.attributes = new N,
              c = a.length;
            s._ownerElement = o;
            for (var l = 0; l < c; l++) o.setAttributeNode(ye(e, a.item(l), !0));
            break;
          case f:
            n = !0
        }
        if (n)
          for (var u = t.firstChild; u;) o.appendChild(ye(e, u, n)), u = u.nextSibling;
        return o
      }

      function ve(e, t, n) {
        e[t] = n
      }
      O.INVALID_STATE_ERR = (C[11] = "Invalid state", 11), O.SYNTAX_ERR = (C[12] = "Syntax error", 12), O.INVALID_MODIFICATION_ERR = (C[13] = "Invalid modification", 13), O.NAMESPACE_ERR = (C[14] = "Invalid namespace", 14), O.INVALID_ACCESS_ERR = (C[15] = "Invalid access", 15), A.prototype = Error.prototype, l(O, A), R.prototype = {
        length: 0,
        item: function (e) {
          return this[e] || null
        },
        toString: function (e, t) {
          for (var n = [], o = 0; o < this.length; o++) me(this[o], n, e, t);
          return n.join("")
        },
        filter: function (e) {
          return Array.prototype.filter.call(this, e)
        },
        indexOf: function (e) {
          return Array.prototype.indexOf.call(this, e)
        }
      }, P.prototype.item = function (e) {
        return I(this), this[e]
      }, u(P, R), N.prototype = {
        length: 0,
        item: R.prototype.item,
        getNamedItem: function (e) {
          for (var t = this.length; t--;) {
            var n = this[t];
            if (n.nodeName == e) return n
          }
        },
        setNamedItem: function (e) {
          var t = e.ownerElement;
          if (t && t != this._ownerElement) throw new A(T);
          var n = this.getNamedItem(e.nodeName);
          return D(this._ownerElement, this, e, n), n
        },
        setNamedItemNS: function (e) {
          var t, n = e.ownerElement;
          if (n && n != this._ownerElement) throw new A(T);
          return t = this.getNamedItemNS(e.namespaceURI, e.localName), D(this._ownerElement, this, e, t), t
        },
        removeNamedItem: function (e) {
          var t = this.getNamedItem(e);
          return F(this._ownerElement, this, t), t
        },
        removeNamedItemNS: function (e, t) {
          var n = this.getNamedItemNS(e, t);
          return F(this._ownerElement, this, n), n
        },
        getNamedItemNS: function (e, t) {
          for (var n = this.length; n--;) {
            var o = this[n];
            if (o.localName == t && o.namespaceURI == e) return o
          }
          return null
        }
      }, L.prototype = {
        hasFeature: function (e, t) {
          return !0
        },
        createDocument: function (e, t, n) {
          var o = new j;
          if (o.implementation = this, o.childNodes = new R, o.doctype = n || null, n && o.appendChild(n), t) {
            var r = o.createElementNS(e, t);
            o.appendChild(r)
          }
          return o
        },
        createDocumentType: function (e, t, n) {
          var o = new ie;
          return o.name = e, o.nodeName = e, o.publicId = t || "", o.systemId = n || "", o
        }
      }, U.prototype = {
        firstChild: null,
        lastChild: null,
        previousSibling: null,
        nextSibling: null,
        attributes: null,
        parentNode: null,
        childNodes: null,
        ownerDocument: null,
        nodeValue: null,
        namespaceURI: null,
        prefix: null,
        localName: null,
        insertBefore: function (e, t) {
          return Z(this, e, t)
        },
        replaceChild: function (e, t) {
          Z(this, e, t, X), t && this.removeChild(t)
        },
        removeChild: function (e) {
          return z(this, e)
        },
        appendChild: function (e) {
          return this.insertBefore(e, null)
        },
        hasChildNodes: function () {
          return null != this.firstChild
        },
        cloneNode: function (e) {
          return ye(this.ownerDocument || this, this, e)
        },
        normalize: function () {
          for (var e = this.firstChild; e;) {
            var t = e.nextSibling;
            t && t.nodeType == h && e.nodeType == h ? (this.removeChild(t), e.appendData(t.data)) : (e.normalize(), e = t)
          }
        },
        isSupported: function (e, t) {
          return this.ownerDocument.implementation.hasFeature(e, t)
        },
        hasAttributes: function () {
          return this.attributes.length > 0
        },
        lookupPrefix: function (e) {
          for (var t = this; t;) {
            var n = t._nsMap;
            if (n)
              for (var o in n)
                if (Object.prototype.hasOwnProperty.call(n, o) && n[o] === e) return o;
            t = t.nodeType == f ? t.ownerDocument : t.parentNode
          }
          return null
        },
        lookupNamespaceURI: function (e) {
          for (var t = this; t;) {
            var n = t._nsMap;
            if (n && Object.prototype.hasOwnProperty.call(n, e)) return n[e];
            t = t.nodeType == f ? t.ownerDocument : t.parentNode
          }
          return null
        },
        isDefaultNamespace: function (e) {
          return null == this.lookupPrefix(e)
        }
      }, l(d, U), l(d, U.prototype), j.prototype = {
        nodeName: "#document",
        nodeType: x,
        doctype: null,
        documentElement: null,
        _inc: 1,
        insertBefore: function (e, t) {
          if (e.nodeType == b) {
            for (var n = e.firstChild; n;) {
              var o = n.nextSibling;
              this.insertBefore(n, t), n = o
            }
            return e
          }
          return Z(this, e, t), e.ownerDocument = this, null === this.documentElement && e.nodeType === p && (this.documentElement = e), e
        },
        removeChild: function (e) {
          return this.documentElement == e && (this.documentElement = null), z(this, e)
        },
        replaceChild: function (e, t) {
          Z(this, e, t, X), e.ownerDocument = this, t && this.removeChild(t), V(e) && (this.documentElement = e)
        },
        importNode: function (e, t) {
          return ge(this, e, t)
        },
        getElementById: function (e) {
          var t = null;
          return $(this.documentElement, (function (n) {
            if (n.nodeType == p && n.getAttribute("id") == e) return t = n, !0
          })), t
        },
        getElementsByClassName: function (e) {
          var t = c(e);
          return new P(this, (function (n) {
            var o = [];
            return t.length > 0 && $(n.documentElement, (function (r) {
              if (r !== n && r.nodeType === p) {
                var i = r.getAttribute("class");
                if (i) {
                  var a = e === i;
                  if (!a) {
                    var s = c(i);
                    a = t.every((l = s, function (e) {
                      return l && -1 !== l.indexOf(e)
                    }))
                  }
                  a && o.push(r)
                }
              }
              var l
            })), o
          }))
        },
        createElement: function (e) {
          var t = new Q;
          return t.ownerDocument = this, t.nodeName = e, t.tagName = e, t.localName = e, t.childNodes = new R, (t.attributes = new N)._ownerElement = t, t
        },
        createDocumentFragment: function () {
          var e = new le;
          return e.ownerDocument = this, e.childNodes = new R, e
        },
        createTextNode: function (e) {
          var t = new ne;
          return t.ownerDocument = this, t.appendData(e), t
        },
        createComment: function (e) {
          var t = new oe;
          return t.ownerDocument = this, t.appendData(e), t
        },
        createCDATASection: function (e) {
          var t = new re;
          return t.ownerDocument = this, t.appendData(e), t
        },
        createProcessingInstruction: function (e, t) {
          var n = new ue;
          return n.ownerDocument = this, n.tagName = n.target = e, n.nodeValue = n.data = t, n
        },
        createAttribute: function (e) {
          var t = new ee;
          return t.ownerDocument = this, t.name = e, t.nodeName = e, t.localName = e, t.specified = !0, t
        },
        createEntityReference: function (e) {
          var t = new ce;
          return t.ownerDocument = this, t.nodeName = e, t
        },
        createElementNS: function (e, t) {
          var n = new Q,
            o = t.split(":"),
            r = n.attributes = new N;
          return n.childNodes = new R, n.ownerDocument = this, n.nodeName = t, n.tagName = t, n.namespaceURI = e, 2 == o.length ? (n.prefix = o[0], n.localName = o[1]) : n.localName = t, r._ownerElement = n, n
        },
        createAttributeNS: function (e, t) {
          var n = new ee,
            o = t.split(":");
          return n.ownerDocument = this, n.nodeName = t, n.name = t, n.namespaceURI = e, n.specified = !0, 2 == o.length ? (n.prefix = o[0], n.localName = o[1]) : n.localName = t, n
        }
      }, u(j, U), Q.prototype = {
        nodeType: p,
        hasAttribute: function (e) {
          return null != this.getAttributeNode(e)
        },
        getAttribute: function (e) {
          var t = this.getAttributeNode(e);
          return t && t.value || ""
        },
        getAttributeNode: function (e) {
          return this.attributes.getNamedItem(e)
        },
        setAttribute: function (e, t) {
          var n = this.ownerDocument.createAttribute(e);
          n.value = n.nodeValue = "" + t, this.setAttributeNode(n)
        },
        removeAttribute: function (e) {
          var t = this.getAttributeNode(e);
          t && this.removeAttributeNode(t)
        },
        appendChild: function (e) {
          return e.nodeType === b ? this.insertBefore(e, null) : (t = this, (n = e).parentNode && n.parentNode.removeChild(n), n.parentNode = t, n.previousSibling = t.lastChild, n.nextSibling = null, n.previousSibling ? n.previousSibling.nextSibling = n : t.firstChild = n, t.lastChild = n, Y(t.ownerDocument, t, n), n);
          var t, n
        },
        setAttributeNode: function (e) {
          return this.attributes.setNamedItem(e)
        },
        setAttributeNodeNS: function (e) {
          return this.attributes.setNamedItemNS(e)
        },
        removeAttributeNode: function (e) {
          return this.attributes.removeNamedItem(e.nodeName)
        },
        removeAttributeNS: function (e, t) {
          var n = this.getAttributeNodeNS(e, t);
          n && this.removeAttributeNode(n)
        },
        hasAttributeNS: function (e, t) {
          return null != this.getAttributeNodeNS(e, t)
        },
        getAttributeNS: function (e, t) {
          var n = this.getAttributeNodeNS(e, t);
          return n && n.value || ""
        },
        setAttributeNS: function (e, t, n) {
          var o = this.ownerDocument.createAttributeNS(e, t);
          o.value = o.nodeValue = "" + n, this.setAttributeNode(o)
        },
        getAttributeNodeNS: function (e, t) {
          return this.attributes.getNamedItemNS(e, t)
        },
        getElementsByTagName: function (e) {
          return new P(this, (function (t) {
            var n = [];
            return $(t, (function (o) {
              o === t || o.nodeType != p || "*" !== e && o.tagName != e || n.push(o)
            })), n
          }))
        },
        getElementsByTagNameNS: function (e, t) {
          return new P(this, (function (n) {
            var o = [];
            return $(n, (function (r) {
              r === n || r.nodeType !== p || "*" !== e && r.namespaceURI !== e || "*" !== t && r.localName != t || o.push(r)
            })), o
          }))
        }
      }, j.prototype.getElementsByTagName = Q.prototype.getElementsByTagName, j.prototype.getElementsByTagNameNS = Q.prototype.getElementsByTagNameNS, u(Q, U), ee.prototype.nodeType = f, u(ee, U), te.prototype = {
        data: "",
        substringData: function (e, t) {
          return this.data.substring(e, e + t)
        },
        appendData: function (e) {
          e = this.data + e, this.nodeValue = this.data = e, this.length = e.length
        },
        insertData: function (e, t) {
          this.replaceData(e, 0, t)
        },
        appendChild: function (e) {
          throw new Error(C[w])
        },
        deleteData: function (e, t) {
          this.replaceData(e, t, "")
        },
        replaceData: function (e, t, n) {
          n = this.data.substring(0, e) + n + this.data.substring(e + t), this.nodeValue = this.data = n, this.length = n.length
        }
      }, u(te, U), ne.prototype = {
        nodeName: "#text",
        nodeType: h,
        splitText: function (e) {
          var t = this.data,
            n = t.substring(e);
          t = t.substring(0, e), this.data = this.nodeValue = t, this.length = t.length;
          var o = this.ownerDocument.createTextNode(n);
          return this.parentNode && this.parentNode.insertBefore(o, this.nextSibling), o
        }
      }, u(ne, te), oe.prototype = {
        nodeName: "#comment",
        nodeType: _
      }, u(oe, te), re.prototype = {
        nodeName: "#cdata-section",
        nodeType: m
      }, u(re, te), ie.prototype.nodeType = k, u(ie, U), ae.prototype.nodeType = S, u(ae, U), se.prototype.nodeType = y, u(se, U), ce.prototype.nodeType = g, u(ce, U), le.prototype.nodeName = "#document-fragment", le.prototype.nodeType = b, u(le, U), ue.prototype.nodeType = v, u(ue, U), de.prototype.serializeToString = function (e, t, n) {
        return pe.call(e, t, n)
      }, U.prototype.toString = pe;
      try {
        if (Object.defineProperty) {
          let e = function (t) {
            switch (t.nodeType) {
              case p:
              case b:
                var n = [];
                for (t = t.firstChild; t;) 7 !== t.nodeType && 8 !== t.nodeType && n.push(e(t)), t = t.nextSibling;
                return n.join("");
              default:
                return t.nodeValue
            }
          };
          Object.defineProperty(P.prototype, "length", {
            get: function () {
              return I(this), this.$$length
            }
          }), Object.defineProperty(U.prototype, "textContent", {
            get: function () {
              return e(this)
            },
            set: function (e) {
              switch (this.nodeType) {
                case p:
                case b:
                  for (; this.firstChild;) this.removeChild(this.firstChild);
                  (e || String(e)) && this.appendChild(this.ownerDocument.createTextNode(e));
                  break;
                default:
                  this.data = e, this.value = e, this.nodeValue = e
              }
            }
          }), ve = function (e, t, n) {
            e["$$" + t] = n
          }
        }
      } catch (_e) {}
      t.DocumentType = ie, t.DOMException = A, t.DOMImplementation = L, t.Element = Q, t.Node = U, t.NodeList = R, t.XMLSerializer = de
    }, function (e, t) {
      var n, o, r, i, a, s, c, l, u, d, p, f, h, m, g, y, v, _, x = (o = (n = n || {}).Base64, i = function (e) {
        for (var t = {}, n = 0, o = e.length; n < o; n++) t[e.charAt(n)] = n;
        return t
      }(r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"), a = String.fromCharCode, s = function (e) {
        if (e.length < 2) return (t = e.charCodeAt(0)) < 128 ? e : t < 2048 ? a(192 | t >>> 6) + a(128 | 63 & t) : a(224 | t >>> 12 & 15) + a(128 | t >>> 6 & 63) + a(128 | 63 & t);
        var t = 65536 + 1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320);
        return a(240 | t >>> 18 & 7) + a(128 | t >>> 12 & 63) + a(128 | t >>> 6 & 63) + a(128 | 63 & t)
      }, c = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g, l = function (e) {
        return e.replace(c, s)
      }, u = function (e) {
        var t = [0, 2, 1][e.length % 3],
          n = e.charCodeAt(0) << 16 | (e.length > 1 ? e.charCodeAt(1) : 0) << 8 | (e.length > 2 ? e.charCodeAt(2) : 0);
        return [r.charAt(n >>> 18), r.charAt(n >>> 12 & 63), t >= 2 ? "=" : r.charAt(n >>> 6 & 63), t >= 1 ? "=" : r.charAt(63 & n)].join("")
      }, d = n.btoa ? function (e) {
        return n.btoa(e)
      } : function (e) {
        return e.replace(/[\s\S]{1,3}/g, u)
      }, p = function (e) {
        return d(l(e))
      }, f = function (e, t) {
        return t ? p(String(e)).replace(/[+\/]/g, (function (e) {
          return "+" == e ? "-" : "_"
        })).replace(/=/g, "") : p(String(e))
      }, h = new RegExp(["[À-ß][-¿]", "[à-ï][-¿]{2}", "[ð-÷][-¿]{3}"].join("|"), "g"), m = function (e) {
        switch (e.length) {
          case 4:
            var t = ((7 & e.charCodeAt(0)) << 18 | (63 & e.charCodeAt(1)) << 12 | (63 & e.charCodeAt(2)) << 6 | 63 & e.charCodeAt(3)) - 65536;
            return a(55296 + (t >>> 10)) + a(56320 + (1023 & t));
          case 3:
            return a((15 & e.charCodeAt(0)) << 12 | (63 & e.charCodeAt(1)) << 6 | 63 & e.charCodeAt(2));
          default:
            return a((31 & e.charCodeAt(0)) << 6 | 63 & e.charCodeAt(1))
        }
      }, g = function (e) {
        return e.replace(h, m)
      }, y = function (e) {
        var t = e.length,
          n = t % 4,
          o = (t > 0 ? i[e.charAt(0)] << 18 : 0) | (t > 1 ? i[e.charAt(1)] << 12 : 0) | (t > 2 ? i[e.charAt(2)] << 6 : 0) | (t > 3 ? i[e.charAt(3)] : 0),
          r = [a(o >>> 16), a(o >>> 8 & 255), a(255 & o)];
        return r.length -= [0, 0, 2, 1][n], r.join("")
      }, v = n.atob ? function (e) {
        return n.atob(e)
      } : function (e) {
        return e.replace(/[\s\S]{1,4}/g, y)
      }, _ = function (e) {
        return function (e) {
          return g(v(e))
        }(String(e).replace(/[-_]/g, (function (e) {
          return "-" == e ? "+" : "/"
        })).replace(/[^A-Za-z0-9\+\/]/g, ""))
      }, {
        VERSION: "2.1.9",
        atob: v,
        btoa: d,
        fromBase64: _,
        toBase64: f,
        utob: l,
        encode: f,
        encodeURI: function (e) {
          return f(e, !0)
        },
        btou: g,
        decode: _,
        noConflict: function () {
          var e = n.Base64;
          return n.Base64 = o, e
        }
      });
      e.exports = x
    }, function (e, t, n) {
      function o(e) {
        return (o = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
          return typeof e
        } : function (e) {
          return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
        })(e)
      }

      function r() {
        /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
        r = function () {
          return e
        };
        var e = {},
          t = Object.prototype,
          n = t.hasOwnProperty,
          i = Object.defineProperty || function (e, t, n) {
            e[t] = n.value
          },
          a = "function" == typeof Symbol ? Symbol : {},
          s = a.iterator || "@@iterator",
          c = a.asyncIterator || "@@asyncIterator",
          l = a.toStringTag || "@@toStringTag";

        function u(e, t, n) {
          return Object.defineProperty(e, t, {
            value: n,
            enumerable: !0,
            configurable: !0,
            writable: !0
          }), e[t]
        }
        try {
          u({}, "")
        } catch (R) {
          u = function (e, t, n) {
            return e[t] = n
          }
        }

        function d(e, t, n, o) {
          var r = t && t.prototype instanceof h ? t : h,
            a = Object.create(r.prototype),
            s = new E(o || []);
          return i(a, "_invoke", {
            value: S(e, n, s)
          }), a
        }

        function p(e, t, n) {
          try {
            return {
              type: "normal",
              arg: e.call(t, n)
            }
          } catch (o) {
            return {
              type: "throw",
              arg: o
            }
          }
        }
        e.wrap = d;
        var f = {};

        function h() {}

        function m() {}

        function g() {}
        var y = {};
        u(y, s, (function () {
          return this
        }));
        var v = Object.getPrototypeOf,
          _ = v && v(v(T([])));
        _ && _ !== t && n.call(_, s) && (y = _);
        var x = g.prototype = h.prototype = Object.create(y);

        function k(e) {
          ["next", "throw", "return"].forEach((function (t) {
            u(e, t, (function (e) {
              return this._invoke(t, e)
            }))
          }))
        }

        function b(e, t) {
          function r(i, a, s, c) {
            var l = p(e[i], e, a);
            if ("throw" !== l.type) {
              var u = l.arg,
                d = u.value;
              return d && "object" == o(d) && n.call(d, "__await") ? t.resolve(d.__await).then((function (e) {
                r("next", e, s, c)
              }), (function (e) {
                r("throw", e, s, c)
              })) : t.resolve(d).then((function (e) {
                u.value = e, s(u)
              }), (function (e) {
                return r("throw", e, s, c)
              }))
            }
            c(l.arg)
          }
          var a;
          i(this, "_invoke", {
            value: function (e, n) {
              function o() {
                return new t((function (t, o) {
                  r(e, n, t, o)
                }))
              }
              return a = a ? a.then(o, o) : o()
            }
          })
        }

        function S(e, t, n) {
          var o = "suspendedStart";
          return function (r, i) {
            if ("executing" === o) throw new Error("Generator is already running");
            if ("completed" === o) {
              if ("throw" === r) throw i;
              return {
                value: void 0,
                done: !0
              }
            }
            for (n.method = r, n.arg = i;;) {
              var a = n.delegate;
              if (a) {
                var s = O(a, n);
                if (s) {
                  if (s === f) continue;
                  return s
                }
              }
              if ("next" === n.method) n.sent = n._sent = n.arg;
              else if ("throw" === n.method) {
                if ("suspendedStart" === o) throw o = "completed", n.arg;
                n.dispatchException(n.arg)
              } else "return" === n.method && n.abrupt("return", n.arg);
              o = "executing";
              var c = p(e, t, n);
              if ("normal" === c.type) {
                if (o = n.done ? "completed" : "suspendedYield", c.arg === f) continue;
                return {
                  value: c.arg,
                  done: n.done
                }
              }
              "throw" === c.type && (o = "completed", n.method = "throw", n.arg = c.arg)
            }
          }
        }

        function O(e, t) {
          var n = e.iterator[t.method];
          if (void 0 === n) {
            if (t.delegate = null, "throw" === t.method) {
              if (e.iterator.return && (t.method = "return", t.arg = void 0, O(e, t), "throw" === t.method)) return f;
              t.method = "throw", t.arg = new TypeError("The iterator does not provide a 'throw' method")
            }
            return f
          }
          var o = p(n, e.iterator, t.arg);
          if ("throw" === o.type) return t.method = "throw", t.arg = o.arg, t.delegate = null, f;
          var r = o.arg;
          return r ? r.done ? (t[e.resultName] = r.value, t.next = e.nextLoc, "return" !== t.method && (t.method = "next", t.arg = void 0), t.delegate = null, f) : r : (t.method = "throw", t.arg = new TypeError("iterator result is not an object"), t.delegate = null, f)
        }

        function C(e) {
          var t = {
            tryLoc: e[0]
          };
          1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t)
        }

        function w(e) {
          var t = e.completion || {};
          t.type = "normal", delete t.arg, e.completion = t
        }

        function E(e) {
          this.tryEntries = [{
            tryLoc: "root"
          }], e.forEach(C, this), this.reset(!0)
        }

        function T(e) {
          if (e) {
            var t = e[s];
            if (t) return t.call(e);
            if ("function" == typeof e.next) return e;
            if (!isNaN(e.length)) {
              var o = -1,
                r = function t() {
                  for (; ++o < e.length;)
                    if (n.call(e, o)) return t.value = e[o], t.done = !1, t;
                  return t.value = void 0, t.done = !0, t
                };
              return r.next = r
            }
          }
          return {
            next: A
          }
        }

        function A() {
          return {
            value: void 0,
            done: !0
          }
        }
        return m.prototype = g, i(x, "constructor", {
          value: g,
          configurable: !0
        }), i(g, "constructor", {
          value: m,
          configurable: !0
        }), m.displayName = u(g, l, "GeneratorFunction"), e.isGeneratorFunction = function (e) {
          var t = "function" == typeof e && e.constructor;
          return !!t && (t === m || "GeneratorFunction" === (t.displayName || t.name))
        }, e.mark = function (e) {
          return Object.setPrototypeOf ? Object.setPrototypeOf(e, g) : (e.__proto__ = g, u(e, l, "GeneratorFunction")), e.prototype = Object.create(x), e
        }, e.awrap = function (e) {
          return {
            __await: e
          }
        }, k(b.prototype), u(b.prototype, c, (function () {
          return this
        })), e.AsyncIterator = b, e.async = function (t, n, o, r, i) {
          void 0 === i && (i = Promise);
          var a = new b(d(t, n, o, r), i);
          return e.isGeneratorFunction(n) ? a : a.next().then((function (e) {
            return e.done ? e.value : a.next()
          }))
        }, k(x), u(x, l, "Generator"), u(x, s, (function () {
          return this
        })), u(x, "toString", (function () {
          return "[object Generator]"
        })), e.keys = function (e) {
          var t = Object(e),
            n = [];
          for (var o in t) n.push(o);
          return n.reverse(),
            function e() {
              for (; n.length;) {
                var o = n.pop();
                if (o in t) return e.value = o, e.done = !1, e
              }
              return e.done = !0, e
            }
        }, e.values = T, E.prototype = {
          constructor: E,
          reset: function (e) {
            if (this.prev = 0, this.next = 0, this.sent = this._sent = void 0, this.done = !1, this.delegate = null, this.method = "next", this.arg = void 0, this.tryEntries.forEach(w), !e)
              for (var t in this) "t" === t.charAt(0) && n.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = void 0)
          },
          stop: function () {
            this.done = !0;
            var e = this.tryEntries[0].completion;
            if ("throw" === e.type) throw e.arg;
            return this.rval
          },
          dispatchException: function (e) {
            if (this.done) throw e;
            var t = this;

            function o(n, o) {
              return a.type = "throw", a.arg = e, t.next = n, o && (t.method = "next", t.arg = void 0), !!o
            }
            for (var r = this.tryEntries.length - 1; r >= 0; --r) {
              var i = this.tryEntries[r],
                a = i.completion;
              if ("root" === i.tryLoc) return o("end");
              if (i.tryLoc <= this.prev) {
                var s = n.call(i, "catchLoc"),
                  c = n.call(i, "finallyLoc");
                if (s && c) {
                  if (this.prev < i.catchLoc) return o(i.catchLoc, !0);
                  if (this.prev < i.finallyLoc) return o(i.finallyLoc)
                } else if (s) {
                  if (this.prev < i.catchLoc) return o(i.catchLoc, !0)
                } else {
                  if (!c) throw new Error("try statement without catch or finally");
                  if (this.prev < i.finallyLoc) return o(i.finallyLoc)
                }
              }
            }
          },
          abrupt: function (e, t) {
            for (var o = this.tryEntries.length - 1; o >= 0; --o) {
              var r = this.tryEntries[o];
              if (r.tryLoc <= this.prev && n.call(r, "finallyLoc") && this.prev < r.finallyLoc) {
                var i = r;
                break
              }
            }
            i && ("break" === e || "continue" === e) && i.tryLoc <= t && t <= i.finallyLoc && (i = null);
            var a = i ? i.completion : {};
            return a.type = e, a.arg = t, i ? (this.method = "next", this.next = i.finallyLoc, f) : this.complete(a)
          },
          complete: function (e, t) {
            if ("throw" === e.type) throw e.arg;
            return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), f
          },
          finish: function (e) {
            for (var t = this.tryEntries.length - 1; t >= 0; --t) {
              var n = this.tryEntries[t];
              if (n.finallyLoc === e) return this.complete(n.completion, n.afterLoc), w(n), f
            }
          },
          catch: function (e) {
            for (var t = this.tryEntries.length - 1; t >= 0; --t) {
              var n = this.tryEntries[t];
              if (n.tryLoc === e) {
                var o = n.completion;
                if ("throw" === o.type) {
                  var r = o.arg;
                  w(n)
                }
                return r
              }
            }
            throw new Error("illegal catch attempt")
          },
          delegateYield: function (e, t, n) {
            return this.delegate = {
              iterator: T(e),
              resultName: t,
              nextLoc: n
            }, "next" === this.method && (this.arg = void 0), f
          }
        }, e
      }

      function i(e, t, n, o, r, i, a) {
        try {
          var s = e[i](a),
            c = s.value
        } catch (l) {
          return void n(l)
        }
        s.done ? t(c) : Promise.resolve(c).then(o, r)
      }
      var a, s = n(7),
        c = n(22),
        l = null,
        u = function (e) {
          return l || (l = new c({
            appkey: "0AND0VEVB24UBGDU",
            versionCode: s.version,
            channelID: "mp_sdk",
            openid: "openid",
            unionid: "unid",
            strictMode: !1,
            delay: e,
            sessionDuration: 6e4
          })), l
        },
        d = function () {
          var e = function () {
            return (65536 * (1 + Math.random()) | 0).toString(16).substring(1)
          };
          return e() + e() + "-" + e() + "-" + e() + "-" + e() + "-" + e() + e() + e()
        },
        p = {
          devicePlatform: "",
          wxVersion: "",
          wxSystem: "",
          wxSdkVersion: ""
        };
      (a = {
        devicePlatform: "",
        wxVersion: "",
        wxSystem: "",
        wxSdkVersion: ""
      }, new Promise((function (e) {
        if (wx$1.canIUse("getSystemInfo")) try {
          wx$1.getSystemInfo({
            success: function (t) {
              var n = t.platform,
                o = t.version,
                r = t.system,
                i = t.SDKVersion;
              Object.assign(a, {
                devicePlatform: n,
                wxVersion: o,
                wxSystem: r,
                wxSdkVersion: i
              }), e(a)
            }
          })
        } catch (t) {
          e({
            devicePlatform: "can_not_get_system_info",
            wxVersion: "can_not_get_system_info",
            wxSystem: "can_not_get_system_info",
            wxSdkVersion: "can_not_get_system_info"
          })
        } else e({
          devicePlatform: "can_not_get_system_info",
          wxVersion: "can_not_get_system_info",
          wxSystem: "can_not_get_system_info",
          wxSdkVersion: "can_not_get_system_info"
        })
      }))).then((function (e) {
        Object.assign(p, e)
      }));
      var f = ["multipartInit", "multipartUpload", "multipartComplete", "multipartList", "multipartListPart", "multipartAbort"],
        h = ["putObject", "postObject", "appendObject", "sliceUploadFile", "uploadFile", "uploadFiles"].concat(f),
        m = ["getObject"];

      function g(e) {
        return e.replace(/([A-Z])/g, "_$1").toLowerCase()
      }
      var y = function () {
        function e(t) {
          ! function (e, t) {
            if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
          }(this, e);
          var n = t.parent,
            o = t.traceId,
            r = t.bucket,
            i = t.region,
            a = t.apiName,
            c = t.fileKey,
            l = t.fileSize,
            f = t.accelerate,
            h = t.customId,
            m = t.delay,
            g = t.deepTracker,
            y = r && r.substr(r.lastIndexOf("-") + 1) || "";
          this.parent = n, this.deepTracker = g, this.delay = m, this.params = {
            cossdkVersion: s.version,
            region: i,
            networkType: "",
            host: "",
            accelerate: f ? "Y" : "N",
            requestPath: c || "",
            size: l || -1,
            httpMd5: 0,
            httpSign: 0,
            httpFull: 0,
            name: a || "",
            result: "",
            tookTime: 0,
            errorNode: "",
            errorCode: "",
            errorMessage: "",
            errorRequestId: "",
            errorStatusCode: 0,
            errorServiceName: "",
            tracePlatform: "cos-wx-sdk-v5",
            traceId: o || d(),
            bucket: r,
            appid: y,
            partNumber: 0,
            retryTimes: 0,
            reqUrl: "",
            customId: h || "",
            devicePlatform: p.devicePlatform,
            wxVersion: p.wxVersion,
            wxSystem: p.wxSystem,
            wxSdkVersion: p.wxSdkVersion,
            md5StartTime: 0,
            md5EndTime: 0,
            signStartTime: 0,
            signEndTime: 0,
            httpStartTime: 0,
            httpEndTime: 0,
            startTime: (new Date).getTime(),
            endTime: 0
          }, this.beacon = u(m)
        }
        var t, n, o, a;
        return t = e, n = [{
          key: "formatResult",
          value: (o = r().mark((function e(n, o) {
            var i, a, s, c, l, u, d, p, f, h, m, g, y, v, _, x, k, b, S;
            return r().wrap((function (e) {
              for (;;) switch (e.prev = e.next) {
                case 0:
                  return h = (new Date).getTime(), m = h - this.params.startTime, e.next = 4, new Promise((function (e) {
                    if (wx$1.canIUse("getNetworkType")) try {
                      wx$1.getNetworkType({
                        success: function (t) {
                          e(t.networkType)
                        }
                      })
                    } catch (t) {
                      e("can_not_get_network_type")
                    } else e("can_not_get_network_type")
                  }));
                case 4:
                  if (g = e.sent, y = n ? (null == n || null === (i = n.error) || void 0 === i || null === (a = i.error) || void 0 === a ? void 0 : a.Code) || "Error" : "", v = n && ((null == n || null === (s = n.error) || void 0 === s || null === (c = s.error) || void 0 === c ? void 0 : c.Message) || (null == n || null === (l = n.error) || void 0 === l ? void 0 : l.error) || (null == n ? void 0 : n.error)) || "", _ = n ? null == n || null === (u = n.error) || void 0 === u ? void 0 : u.statusCode : o.statusCode, x = n ? null == n || null === (d = n.error) || void 0 === d || null === (p = d.error) || void 0 === p ? void 0 : p.Resource : "", k = n ? (null == n || null === (f = n.error) || void 0 === f ? void 0 : f.RequestId) || "" : (null == o ? void 0 : o.RequestId) || "", b = n ? k ? "Server" : "Client" : "", Object.assign(this.params, {
                      tookTime: m,
                      networkType: g,
                      httpMd5: this.params.md5EndTime - this.params.md5StartTime,
                      httpSign: this.params.signEndTime - this.params.signStartTime,
                      httpFull: this.params.httpEndTime - this.params.httpStartTime,
                      result: n ? "Fail" : "Success",
                      errorType: b,
                      errorCode: y,
                      errorStatusCode: _,
                      errorMessage: v,
                      errorServiceName: x,
                      errorRequestId: k
                    }), !n || y && v || (this.params.fullError = n ? JSON.stringify(n) : ""), "getObject" === this.params.name && (this.params.size = o ? o.headers && o.headers["content-length"] : -1), this.params.reqUrl) try {
                    S = /^http(s)?:\/\/(.*?)\//.exec(this.params.reqUrl), this.params.host = S[2]
                  } catch (r) {
                    this.params.host = this.params.reqUrl
                  }
                  this.sendEvents();
                case 16:
                case "end":
                  return e.stop()
              }
            }), e, this)
          })), a = function () {
            var e = this,
              t = arguments;
            return new Promise((function (n, r) {
              var a = o.apply(e, t);

              function s(e) {
                i(a, n, r, s, c, "next", e)
              }

              function c(e) {
                i(a, n, r, s, c, "throw", e)
              }
              s(void 0)
            }))
          }, function (e, t) {
            return a.apply(this, arguments)
          })
        }, {
          key: "setParams",
          value: function (e) {
            Object.assign(this.params, e)
          }
        }, {
          key: "sendEvents",
          value: function () {
            if (!f.includes(this.params.name) || this.deepTracker) {
              var e, t = (e = this.params.name, h.includes(e) ? "cos_upload" : m.includes(e) ? "cos_download" : "base_service"),
                n = function (e) {
                  var t = {},
                    n = "Success" === e.result ? ["tracePlatform", "cossdkVersion", "region", "bucket", "appid", "networkType", "host", "accelerate", "requestPath", "partNumber", "size", "name", "result", "tookTime", "errorRequestId", "retryTimes", "reqUrl", "customId", "devicePlatform", "wxVersion", "wxSystem", "wxSdkVersion"] : ["tracePlatform", "cossdkVersion", "region", "networkType", "host", "accelerate", "requestPath", "size", "httpMd5", "httpSign", "httpFull", "name", "result", "tookTime", "errorNode", "errorCode", "errorMessage", "errorRequestId", "errorStatusCode", "errorServiceName", "errorType", "traceId", "bucket", "appid", "partNumber", "retryTimes", "reqUrl", "customId", "fullError", "devicePlatform", "wxVersion", "wxSystem", "wxSdkVersion"];
                  for (var o in e) n.includes(o) && (t[g(o)] = e[o]);
                  return t
                }(this.params);
              this.beacon || (this.beacon = u(this.delay || 5e3)), 0 === this.params.delay ? this.beacon && this.beacon.onDirectUserAction(t, n) : this.beacon && this.beacon.onUserAction(t, n)
            }
          }
        }, {
          key: "generateSubTracker",
          value: function (t) {
            return Object.assign(t, {
              parent: this,
              deepTracker: this.deepTracker,
              traceId: this.params.traceId,
              bucket: this.params.bucket,
              region: this.params.region,
              fileKey: this.params.requestPath,
              customId: this.params.customId,
              delay: this.params.delay
            }), new e(t)
          }
        }], n && function (e, t) {
          for (var n = 0; n < t.length; n++) {
            var o = t[n];
            o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, o.key, o)
          }
        }(t.prototype, n), Object.defineProperty(t, "prototype", {
          writable: !1
        }), e
      }();
      e.exports = y
    }, function (e) {
      e.exports = JSON.parse('{"name":"cos-wx-sdk-v5","version":"1.4.10","description":"小程序 SDK for [腾讯云对象存储服务](https://cloud.tencent.com/product/cos)","main":"demo/lib/cos-wx-sdk-v5.min.js","scripts":{"dev":"cross-env NODE_ENV=development node build.js --mode=development","build":"cross-env NODE_ENV=production node build.js --mode=production","sts.js":"node server/sts.js"},"repository":{"type":"git","url":"http://github.com/tencentyun/cos-wx-sdk-v5.git"},"author":"carsonxu","license":"ISC","dependencies":{"mime":"^2.4.6","@xmldom/xmldom":"^0.8.6"},"devDependencies":{"@babel/core":"7.17.9","babel-loader":"8.2.5","@babel/preset-env":"7.16.11","body-parser":"^1.18.3","cross-env":"^7.0.3","express":"^4.17.1","qcloud-cos-sts":"^3.0.2","terser-webpack-plugin":"4.2.3","webpack":"4.46.0","webpack-cli":"4.10.0"}}')
    }, function (e, t) {
      var n = function (e) {
        var t = {},
          n = function (e) {
            return !t[e] && (t[e] = []), t[e]
          };
        e.on = function (e, t) {
          n(e).push(t)
        }, e.off = function (e, t) {
          for (var o = n(e), r = o.length - 1; r >= 0; r--) t === o[r] && o.splice(r, 1)
        }, e.emit = function (e, t) {
          for (var o = n(e).map((function (e) {
              return e
            })), r = 0; r < o.length; r++) o[r](t)
        }
      };
      e.exports.init = n, e.exports.EventProxy = function () {
        n(this)
      }
    }, function (e, t, n) {
      var o, r, i = n(0),
        a = "cos_sdk_upload_cache",
        s = function () {
          try {
            o.length ? wx$1.setStorageSync(a, JSON.stringify(o)) : wx$1.removeStorageSync(a)
          } catch (e) {}
        },
        c = function () {
          if (!o) {
            o = function () {
              try {
                var e = JSON.parse(wx$1.getStorageSync(a))
              } catch (t) {}
              return e || (e = []), e
            }();
            for (var e = !1, t = Math.round(Date.now() / 1e3), n = o.length - 1; n >= 0; n--) {
              var r = o[n][2];
              (!r || r + 2592e3 < t) && (o.splice(n, 1), e = !0)
            }
            e && s()
          }
        },
        l = function () {
          r || (r = setTimeout((function () {
            s(), r = null
          }), 400))
        },
        u = {
          using: {},
          setUsing: function (e) {
            u.using[e] = !0
          },
          removeUsing: function (e) {
            delete u.using[e]
          },
          getFileId: function (e, t, n, o) {
            return e.FilePath && e.size && e.lastModifiedTime && t ? i.md5([e.FilePath].join("::")) + "-" + i.md5([e.size, e.mode, e.lastAccessedTime, e.lastModifiedTime, t, n, o].join("::")) : null
          },
          getCopyFileId: function (e, t, n, o, r) {
            var a = t["content-length"],
              s = t.etag || "",
              c = t["last-modified"];
            return e && n ? i.md5([e, a, s, c, n, o, r].join("::")) : null
          },
          getUploadIdList: function (e) {
            if (!e) return null;
            c();
            for (var t = [], n = 0; n < o.length; n++) o[n][0] === e && t.push(o[n][1]);
            return t.length ? t : null
          },
          saveUploadId: function (e, t, n) {
            if (c(), e) {
              for (var r = e.substr(0, e.indexOf("-") + 1), i = o.length - 1; i >= 0; i--) {
                var a = o[i];
                (a[0] === e && a[1] === t || e !== a[0] && 0 === a[0].indexOf(r)) && o.splice(i, 1)
              }
              o.unshift([e, t, Math.round(Date.now() / 1e3)]), o.length > n && o.splice(n), l()
            }
          },
          removeUploadId: function (e) {
            c(), delete u.using[e];
            for (var t = o.length - 1; t >= 0; t--) o[t][1] === e && o.splice(t, 1);
            l()
          }
        };
      e.exports = u
    }, function (e, t, n) {
      var o = n(11);
      e.exports = o
    }, function (e, t, n) {
      var o = n(0),
        r = n(8),
        i = n(23),
        a = n(24),
        s = n(30),
        c = n(7),
        l = {
          SecretId: "",
          SecretKey: "",
          SecurityToken: "",
          ChunkRetryTimes: 2,
          FileParallelLimit: 3,
          ChunkParallelLimit: 3,
          ChunkSize: 1048576,
          SliceSize: 1048576,
          CopyChunkParallelLimit: 20,
          CopyChunkSize: 10485760,
          CopySliceSize: 10485760,
          MaxPartNumber: 1e4,
          ProgressInterval: 1e3,
          UploadQueueSize: 1e4,
          Domain: "",
          ServiceDomain: "",
          Protocol: "",
          CompatibilityMode: !1,
          ForcePathStyle: !1,
          Timeout: 0,
          CorrectClockSkew: !0,
          SystemClockOffset: 0,
          UploadCheckContentMd5: !1,
          UploadAddMetaMd5: !1,
          UploadIdCacheLimit: 50,
          UseAccelerate: !1,
          ForceSignHost: !0,
          HttpDNSServiceId: "",
          SimpleUploadMethod: "postObject",
          EnableTracker: !1,
          DeepTracker: !1,
          TrackerDelay: 5e3,
          CustomId: ""
        },
        u = function (e) {
          this.options = o.extend(o.clone(l), e || {}), this.options.FileParallelLimit = Math.max(1, this.options.FileParallelLimit), this.options.ChunkParallelLimit = Math.max(1, this.options.ChunkParallelLimit), this.options.ChunkRetryTimes = Math.max(0, this.options.ChunkRetryTimes), this.options.ChunkSize = Math.max(1048576, this.options.ChunkSize), this.options.CopyChunkParallelLimit = Math.max(1, this.options.CopyChunkParallelLimit), this.options.CopyChunkSize = Math.max(1048576, this.options.CopyChunkSize), this.options.CopySliceSize = Math.max(0, this.options.CopySliceSize), this.options.MaxPartNumber = Math.max(1024, Math.min(1e4, this.options.MaxPartNumber)), this.options.Timeout = Math.max(0, this.options.Timeout), this.options.AppId, this.options.SecretId && this.options.SecretId.indexOf(" "), this.options.SecretKey && this.options.SecretKey.indexOf(" "), r.init(this), i.init(this)
        };
      a.init(u, i), s.init(u, i), u.util = {
        md5: o.md5,
        xml2json: o.xml2json,
        json2xml: o.json2xml
      }, u.getAuthorization = o.getAuth, u.version = c.version, e.exports = u
    }, function (module, exports, __webpack_require__) {
      (function (process, global, module) {
        var __WEBPACK_AMD_DEFINE_RESULT__;

        function _typeof(e) {
          return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
            return typeof e
          } : function (e) {
            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
          })(e)
        }(function () {
          var ERROR = "input is invalid type",
            WINDOW = "object" === ("undefined" == typeof window ? "undefined" : _typeof(window)),
            root = WINDOW ? window : {};
          root.JS_MD5_NO_WINDOW && (WINDOW = !1);
          var WEB_WORKER = !WINDOW && "object" === ("undefined" == typeof self ? "undefined" : _typeof(self)),
            NODE_JS = !root.JS_MD5_NO_NODE_JS && "object" === (void 0 === process ? "undefined" : _typeof(process)) && process.versions && process.versions.node;
          NODE_JS ? root = global : WEB_WORKER && (root = self);
          var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && "object" === _typeof(module) && module.exports,
            AMD = __webpack_require__(14),
            ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer,
            HEX_CHARS = "0123456789abcdef".split(""),
            EXTRA = [128, 32768, 8388608, -2147483648],
            SHIFT = [0, 8, 16, 24],
            OUTPUT_TYPES = ["hex", "array", "digest", "buffer", "arrayBuffer", "base64"],
            BASE64_ENCODE_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),
            blocks = [],
            buffer8;
          if (ARRAY_BUFFER) {
            var buffer = new ArrayBuffer(68);
            buffer8 = new Uint8Array(buffer), blocks = new Uint32Array(buffer)
          }!root.JS_MD5_NO_NODE_JS && Array.isArray || (Array.isArray = function (e) {
            return "[object Array]" === Object.prototype.toString.call(e)
          }), !ARRAY_BUFFER || !root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (ArrayBuffer.isView = function (e) {
            return "object" === _typeof(e) && e.buffer && e.buffer.constructor === ArrayBuffer
          });
          var createOutputMethod = function (e) {
              return function (t) {
                return new Md5(!0).update(t)[e]()
              }
            },
            createMethod = function () {
              var e = createOutputMethod("hex");
              NODE_JS && (e = nodeWrap(e)), e.getCtx = e.create = function () {
                return new Md5
              }, e.update = function (t) {
                return e.create().update(t)
              };
              for (var t = 0; t < OUTPUT_TYPES.length; ++t) {
                var n = OUTPUT_TYPES[t];
                e[n] = createOutputMethod(n)
              }
              return e
            },
            nodeWrap = function nodeWrap(method) {
              var crypto = eval("require('crypto')"),
                Buffer = eval("require('buffer').Buffer"),
                nodeMethod = function (e) {
                  if ("string" == typeof e) return crypto.createHash("md5").update(e, "utf8").digest("hex");
                  if (null == e) throw ERROR;
                  return e.constructor === ArrayBuffer && (e = new Uint8Array(e)), Array.isArray(e) || ArrayBuffer.isView(e) || e.constructor === Buffer ? crypto.createHash("md5").update(new Buffer(e)).digest("hex") : method(e)
                };
              return nodeMethod
            };

          function Md5(e) {
            if (e) blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0, this.blocks = blocks, this.buffer8 = buffer8;
            else if (ARRAY_BUFFER) {
              var t = new ArrayBuffer(68);
              this.buffer8 = new Uint8Array(t), this.blocks = new Uint32Array(t)
            } else this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
            this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0, this.finalized = this.hashed = !1, this.first = !0
          }
          Md5.prototype.update = function (e) {
            if (!this.finalized) {
              var t, n = _typeof(e);
              if ("string" !== n) {
                if ("object" !== n) throw ERROR;
                if (null === e) throw ERROR;
                if (!ARRAY_BUFFER || e.constructor !== ArrayBuffer && "ArrayBuffer" !== e.constructor.name) {
                  if (!(Array.isArray(e) || ARRAY_BUFFER && ArrayBuffer.isView(e))) throw ERROR
                } else e = new Uint8Array(e);
                t = !0
              }
              for (var o, r, i = 0, a = e.length, s = this.blocks, c = this.buffer8; i < a;) {
                if (this.hashed && (this.hashed = !1, s[0] = s[16], s[16] = s[1] = s[2] = s[3] = s[4] = s[5] = s[6] = s[7] = s[8] = s[9] = s[10] = s[11] = s[12] = s[13] = s[14] = s[15] = 0), t)
                  if (ARRAY_BUFFER)
                    for (r = this.start; i < a && r < 64; ++i) c[r++] = e[i];
                  else
                    for (r = this.start; i < a && r < 64; ++i) s[r >> 2] |= e[i] << SHIFT[3 & r++];
                else if (ARRAY_BUFFER)
                  for (r = this.start; i < a && r < 64; ++i)(o = e.charCodeAt(i)) < 128 ? c[r++] = o : o < 2048 ? (c[r++] = 192 | o >> 6, c[r++] = 128 | 63 & o) : o < 55296 || o >= 57344 ? (c[r++] = 224 | o >> 12, c[r++] = 128 | o >> 6 & 63, c[r++] = 128 | 63 & o) : (o = 65536 + ((1023 & o) << 10 | 1023 & e.charCodeAt(++i)), c[r++] = 240 | o >> 18, c[r++] = 128 | o >> 12 & 63, c[r++] = 128 | o >> 6 & 63, c[r++] = 128 | 63 & o);
                else
                  for (r = this.start; i < a && r < 64; ++i)(o = e.charCodeAt(i)) < 128 ? s[r >> 2] |= o << SHIFT[3 & r++] : o < 2048 ? (s[r >> 2] |= (192 | o >> 6) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & o) << SHIFT[3 & r++]) : o < 55296 || o >= 57344 ? (s[r >> 2] |= (224 | o >> 12) << SHIFT[3 & r++], s[r >> 2] |= (128 | o >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & o) << SHIFT[3 & r++]) : (o = 65536 + ((1023 & o) << 10 | 1023 & e.charCodeAt(++i)), s[r >> 2] |= (240 | o >> 18) << SHIFT[3 & r++], s[r >> 2] |= (128 | o >> 12 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | o >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & o) << SHIFT[3 & r++]);
                this.lastByteIndex = r, this.bytes += r - this.start, r >= 64 ? (this.start = r - 64, this.hash(), this.hashed = !0) : this.start = r
              }
              return this.bytes > 4294967295 && (this.hBytes += this.bytes / 4294967296 << 0, this.bytes = this.bytes % 4294967296), this
            }
          }, Md5.prototype.finalize = function () {
            if (!this.finalized) {
              this.finalized = !0;
              var e = this.blocks,
                t = this.lastByteIndex;
              e[t >> 2] |= EXTRA[3 & t], t >= 56 && (this.hashed || this.hash(), e[0] = e[16], e[16] = e[1] = e[2] = e[3] = e[4] = e[5] = e[6] = e[7] = e[8] = e[9] = e[10] = e[11] = e[12] = e[13] = e[14] = e[15] = 0), e[14] = this.bytes << 3, e[15] = this.hBytes << 3 | this.bytes >>> 29, this.hash()
            }
          }, Md5.prototype.hash = function () {
            var e, t, n, o, r, i, a = this.blocks;
            this.first ? t = ((t = ((e = ((e = a[0] - 680876937) << 7 | e >>> 25) - 271733879 << 0) ^ (n = ((n = (-271733879 ^ (o = ((o = (-1732584194 ^ 2004318071 & e) + a[1] - 117830708) << 12 | o >>> 20) + e << 0) & (-271733879 ^ e)) + a[2] - 1126478375) << 17 | n >>> 15) + o << 0) & (o ^ e)) + a[3] - 1316259209) << 22 | t >>> 10) + n << 0 : (e = this.h0, t = this.h1, n = this.h2, t = ((t += ((e = ((e += ((o = this.h3) ^ t & (n ^ o)) + a[0] - 680876936) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (o = ((o += (n ^ e & (t ^ n)) + a[1] - 389564586) << 12 | o >>> 20) + e << 0) & (e ^ t)) + a[2] + 606105819) << 17 | n >>> 15) + o << 0) & (o ^ e)) + a[3] - 1044525330) << 22 | t >>> 10) + n << 0), t = ((t += ((e = ((e += (o ^ t & (n ^ o)) + a[4] - 176418897) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (o = ((o += (n ^ e & (t ^ n)) + a[5] + 1200080426) << 12 | o >>> 20) + e << 0) & (e ^ t)) + a[6] - 1473231341) << 17 | n >>> 15) + o << 0) & (o ^ e)) + a[7] - 45705983) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (o ^ t & (n ^ o)) + a[8] + 1770035416) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (o = ((o += (n ^ e & (t ^ n)) + a[9] - 1958414417) << 12 | o >>> 20) + e << 0) & (e ^ t)) + a[10] - 42063) << 17 | n >>> 15) + o << 0) & (o ^ e)) + a[11] - 1990404162) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (o ^ t & (n ^ o)) + a[12] + 1804603682) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (o = ((o += (n ^ e & (t ^ n)) + a[13] - 40341101) << 12 | o >>> 20) + e << 0) & (e ^ t)) + a[14] - 1502002290) << 17 | n >>> 15) + o << 0) & (o ^ e)) + a[15] + 1236535329) << 22 | t >>> 10) + n << 0, t = ((t += ((o = ((o += (t ^ n & ((e = ((e += (n ^ o & (t ^ n)) + a[1] - 165796510) << 5 | e >>> 27) + t << 0) ^ t)) + a[6] - 1069501632) << 9 | o >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (o ^ e)) + a[11] + 643717713) << 14 | n >>> 18) + o << 0) ^ o)) + a[0] - 373897302) << 20 | t >>> 12) + n << 0, t = ((t += ((o = ((o += (t ^ n & ((e = ((e += (n ^ o & (t ^ n)) + a[5] - 701558691) << 5 | e >>> 27) + t << 0) ^ t)) + a[10] + 38016083) << 9 | o >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (o ^ e)) + a[15] - 660478335) << 14 | n >>> 18) + o << 0) ^ o)) + a[4] - 405537848) << 20 | t >>> 12) + n << 0, t = ((t += ((o = ((o += (t ^ n & ((e = ((e += (n ^ o & (t ^ n)) + a[9] + 568446438) << 5 | e >>> 27) + t << 0) ^ t)) + a[14] - 1019803690) << 9 | o >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (o ^ e)) + a[3] - 187363961) << 14 | n >>> 18) + o << 0) ^ o)) + a[8] + 1163531501) << 20 | t >>> 12) + n << 0, t = ((t += ((o = ((o += (t ^ n & ((e = ((e += (n ^ o & (t ^ n)) + a[13] - 1444681467) << 5 | e >>> 27) + t << 0) ^ t)) + a[2] - 51403784) << 9 | o >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (o ^ e)) + a[7] + 1735328473) << 14 | n >>> 18) + o << 0) ^ o)) + a[12] - 1926607734) << 20 | t >>> 12) + n << 0, t = ((t += ((i = (o = ((o += ((r = t ^ n) ^ (e = ((e += (r ^ o) + a[5] - 378558) << 4 | e >>> 28) + t << 0)) + a[8] - 2022574463) << 11 | o >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + a[11] + 1839030562) << 16 | n >>> 16) + o << 0)) + a[14] - 35309556) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (o = ((o += ((r = t ^ n) ^ (e = ((e += (r ^ o) + a[1] - 1530992060) << 4 | e >>> 28) + t << 0)) + a[4] + 1272893353) << 11 | o >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + a[7] - 155497632) << 16 | n >>> 16) + o << 0)) + a[10] - 1094730640) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (o = ((o += ((r = t ^ n) ^ (e = ((e += (r ^ o) + a[13] + 681279174) << 4 | e >>> 28) + t << 0)) + a[0] - 358537222) << 11 | o >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + a[3] - 722521979) << 16 | n >>> 16) + o << 0)) + a[6] + 76029189) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (o = ((o += ((r = t ^ n) ^ (e = ((e += (r ^ o) + a[9] - 640364487) << 4 | e >>> 28) + t << 0)) + a[12] - 421815835) << 11 | o >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + a[15] + 530742520) << 16 | n >>> 16) + o << 0)) + a[2] - 995338651) << 23 | t >>> 9) + n << 0, t = ((t += ((o = ((o += (t ^ ((e = ((e += (n ^ (t | ~o)) + a[0] - 198630844) << 6 | e >>> 26) + t << 0) | ~n)) + a[7] + 1126891415) << 10 | o >>> 22) + e << 0) ^ ((n = ((n += (e ^ (o | ~t)) + a[14] - 1416354905) << 15 | n >>> 17) + o << 0) | ~e)) + a[5] - 57434055) << 21 | t >>> 11) + n << 0, t = ((t += ((o = ((o += (t ^ ((e = ((e += (n ^ (t | ~o)) + a[12] + 1700485571) << 6 | e >>> 26) + t << 0) | ~n)) + a[3] - 1894986606) << 10 | o >>> 22) + e << 0) ^ ((n = ((n += (e ^ (o | ~t)) + a[10] - 1051523) << 15 | n >>> 17) + o << 0) | ~e)) + a[1] - 2054922799) << 21 | t >>> 11) + n << 0, t = ((t += ((o = ((o += (t ^ ((e = ((e += (n ^ (t | ~o)) + a[8] + 1873313359) << 6 | e >>> 26) + t << 0) | ~n)) + a[15] - 30611744) << 10 | o >>> 22) + e << 0) ^ ((n = ((n += (e ^ (o | ~t)) + a[6] - 1560198380) << 15 | n >>> 17) + o << 0) | ~e)) + a[13] + 1309151649) << 21 | t >>> 11) + n << 0, t = ((t += ((o = ((o += (t ^ ((e = ((e += (n ^ (t | ~o)) + a[4] - 145523070) << 6 | e >>> 26) + t << 0) | ~n)) + a[11] - 1120210379) << 10 | o >>> 22) + e << 0) ^ ((n = ((n += (e ^ (o | ~t)) + a[2] + 718787259) << 15 | n >>> 17) + o << 0) | ~e)) + a[9] - 343485551) << 21 | t >>> 11) + n << 0, this.first ? (this.h0 = e + 1732584193 << 0, this.h1 = t - 271733879 << 0, this.h2 = n - 1732584194 << 0, this.h3 = o + 271733878 << 0, this.first = !1) : (this.h0 = this.h0 + e << 0, this.h1 = this.h1 + t << 0, this.h2 = this.h2 + n << 0, this.h3 = this.h3 + o << 0)
          }, Md5.prototype.hex = function () {
            this.finalize();
            var e = this.h0,
              t = this.h1,
              n = this.h2,
              o = this.h3;
            return HEX_CHARS[e >> 4 & 15] + HEX_CHARS[15 & e] + HEX_CHARS[e >> 12 & 15] + HEX_CHARS[e >> 8 & 15] + HEX_CHARS[e >> 20 & 15] + HEX_CHARS[e >> 16 & 15] + HEX_CHARS[e >> 28 & 15] + HEX_CHARS[e >> 24 & 15] + HEX_CHARS[t >> 4 & 15] + HEX_CHARS[15 & t] + HEX_CHARS[t >> 12 & 15] + HEX_CHARS[t >> 8 & 15] + HEX_CHARS[t >> 20 & 15] + HEX_CHARS[t >> 16 & 15] + HEX_CHARS[t >> 28 & 15] + HEX_CHARS[t >> 24 & 15] + HEX_CHARS[n >> 4 & 15] + HEX_CHARS[15 & n] + HEX_CHARS[n >> 12 & 15] + HEX_CHARS[n >> 8 & 15] + HEX_CHARS[n >> 20 & 15] + HEX_CHARS[n >> 16 & 15] + HEX_CHARS[n >> 28 & 15] + HEX_CHARS[n >> 24 & 15] + HEX_CHARS[o >> 4 & 15] + HEX_CHARS[15 & o] + HEX_CHARS[o >> 12 & 15] + HEX_CHARS[o >> 8 & 15] + HEX_CHARS[o >> 20 & 15] + HEX_CHARS[o >> 16 & 15] + HEX_CHARS[o >> 28 & 15] + HEX_CHARS[o >> 24 & 15]
          }, Md5.prototype.toString = Md5.prototype.hex, Md5.prototype.digest = function () {
            this.finalize();
            var e = this.h0,
              t = this.h1,
              n = this.h2,
              o = this.h3;
            return [255 & e, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255, 255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255, 255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255, 255 & o, o >> 8 & 255, o >> 16 & 255, o >> 24 & 255]
          }, Md5.prototype.array = Md5.prototype.digest, Md5.prototype.arrayBuffer = function () {
            this.finalize();
            var e = new ArrayBuffer(16),
              t = new Uint32Array(e);
            return t[0] = this.h0, t[1] = this.h1, t[2] = this.h2, t[3] = this.h3, e
          }, Md5.prototype.buffer = Md5.prototype.arrayBuffer, Md5.prototype.base64 = function () {
            for (var e, t, n, o = "", r = this.array(), i = 0; i < 15;) e = r[i++], t = r[i++], n = r[i++], o += BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[63 & (e << 4 | t >>> 4)] + BASE64_ENCODE_CHAR[63 & (t << 2 | n >>> 6)] + BASE64_ENCODE_CHAR[63 & n];
            return e = r[i], o + (BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[e << 4 & 63] + "==")
          };
          var exports = createMethod();
          COMMON_JS ? module.exports = exports : (root.md5 = exports, AMD && (__WEBPACK_AMD_DEFINE_RESULT__ = function () {
            return exports
          }.call(exports, __webpack_require__, exports, module), void 0 === __WEBPACK_AMD_DEFINE_RESULT__ || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)))
        })()
      }).call(this, __webpack_require__(13), __webpack_require__(2), __webpack_require__(3)(module))
    }, function (e, t) {
      var n, o, r = e.exports = {};

      function i() {
        throw new Error("setTimeout has not been defined")
      }

      function a() {
        throw new Error("clearTimeout has not been defined")
      }

      function s(e) {
        if (n === setTimeout) return setTimeout(e, 0);
        if ((n === i || !n) && setTimeout) return n = setTimeout, setTimeout(e, 0);
        try {
          return n(e, 0)
        } catch (t) {
          try {
            return n.call(null, e, 0)
          } catch (o) {
            return n.call(this, e, 0)
          }
        }
      }! function () {
        try {
          n = "function" == typeof setTimeout ? setTimeout : i
        } catch (e) {
          n = i
        }
        try {
          o = "function" == typeof clearTimeout ? clearTimeout : a
        } catch (e) {
          o = a
        }
      }();
      var c, l = [],
        u = !1,
        d = -1;

      function p() {
        u && c && (u = !1, c.length ? l = c.concat(l) : d = -1, l.length && f())
      }

      function f() {
        if (!u) {
          var e = s(p);
          u = !0;
          for (var t = l.length; t;) {
            for (c = l, l = []; ++d < t;) c && c[d].run();
            d = -1, t = l.length
          }
          c = null, u = !1,
            function (e) {
              if (o === clearTimeout) return clearTimeout(e);
              if ((o === a || !o) && clearTimeout) return o = clearTimeout, clearTimeout(e);
              try {
                o(e)
              } catch (t) {
                try {
                  return o.call(null, e)
                } catch (n) {
                  return o.call(this, e)
                }
              }
            }(e)
        }
      }

      function h(e, t) {
        this.fun = e, this.array = t
      }

      function m() {}
      r.nextTick = function (e) {
        var t = new Array(arguments.length - 1);
        if (arguments.length > 1)
          for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
        l.push(new h(e, t)), 1 !== l.length || u || s(f)
      }, h.prototype.run = function () {
        this.fun.apply(null, this.array)
      }, r.title = "browser", r.browser = !0, r.env = {}, r.argv = [], r.version = "", r.versions = {}, r.on = m, r.addListener = m, r.once = m, r.off = m, r.removeListener = m, r.removeAllListeners = m, r.emit = m, r.prependListener = m, r.prependOnceListener = m, r.listeners = function (e) {
        return []
      }, r.binding = function (e) {
        throw new Error("process.binding is not supported")
      }, r.cwd = function () {
        return "/"
      }, r.chdir = function (e) {
        throw new Error("process.chdir is not supported")
      }, r.umask = function () {
        return 0
      }
    }, function (e, t) {
      (function (t) {
        e.exports = t
      }).call(this, {})
    }, function (e, t) {
      var n, o, r, i, a, s, c, l, u, d = d || function (e, t) {
        var n = {},
          o = n.lib = {},
          r = function () {},
          i = o.Base = {
            extend: function (e) {
              r.prototype = this;
              var t = new r;
              return e && t.mixIn(e), t.hasOwnProperty("init") || (t.init = function () {
                t.$super.init.apply(this, arguments)
              }), t.init.prototype = t, t.$super = this, t
            },
            create: function () {
              var e = this.extend();
              return e.init.apply(e, arguments), e
            },
            init: function () {},
            mixIn: function (e) {
              for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]);
              e.hasOwnProperty("toString") && (this.toString = e.toString)
            },
            clone: function () {
              return this.init.prototype.extend(this)
            }
          },
          a = o.WordArray = i.extend({
            init: function (e, t) {
              e = this.words = e || [], this.sigBytes = null != t ? t : 4 * e.length
            },
            toString: function (e) {
              return (e || c).stringify(this)
            },
            concat: function (e) {
              var t = this.words,
                n = e.words,
                o = this.sigBytes;
              if (e = e.sigBytes, this.clamp(), o % 4)
                for (var r = 0; r < e; r++) t[o + r >>> 2] |= (n[r >>> 2] >>> 24 - r % 4 * 8 & 255) << 24 - (o + r) % 4 * 8;
              else if (65535 < n.length)
                for (r = 0; r < e; r += 4) t[o + r >>> 2] = n[r >>> 2];
              else t.push.apply(t, n);
              return this.sigBytes += e, this
            },
            clamp: function () {
              var t = this.words,
                n = this.sigBytes;
              t[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, t.length = e.ceil(n / 4)
            },
            clone: function () {
              var e = i.clone.call(this);
              return e.words = this.words.slice(0), e
            },
            random: function (t) {
              for (var n = [], o = 0; o < t; o += 4) n.push(4294967296 * e.random() | 0);
              return new a.init(n, t)
            }
          }),
          s = n.enc = {},
          c = s.Hex = {
            stringify: function (e) {
              var t = e.words;
              e = e.sigBytes;
              for (var n = [], o = 0; o < e; o++) {
                var r = t[o >>> 2] >>> 24 - o % 4 * 8 & 255;
                n.push((r >>> 4).toString(16)), n.push((15 & r).toString(16))
              }
              return n.join("")
            },
            parse: function (e) {
              for (var t = e.length, n = [], o = 0; o < t; o += 2) n[o >>> 3] |= parseInt(e.substr(o, 2), 16) << 24 - o % 8 * 4;
              return new a.init(n, t / 2)
            }
          },
          l = s.Latin1 = {
            stringify: function (e) {
              var t = e.words;
              e = e.sigBytes;
              for (var n = [], o = 0; o < e; o++) n.push(String.fromCharCode(t[o >>> 2] >>> 24 - o % 4 * 8 & 255));
              return n.join("")
            },
            parse: function (e) {
              for (var t = e.length, n = [], o = 0; o < t; o++) n[o >>> 2] |= (255 & e.charCodeAt(o)) << 24 - o % 4 * 8;
              return new a.init(n, t)
            }
          },
          u = s.Utf8 = {
            stringify: function (e) {
              try {
                return decodeURIComponent(escape(l.stringify(e)))
              } catch (t) {
                throw Error("Malformed UTF-8 data")
              }
            },
            parse: function (e) {
              return l.parse(unescape(encodeURIComponent(e)))
            }
          },
          d = o.BufferedBlockAlgorithm = i.extend({
            reset: function () {
              this._data = new a.init, this._nDataBytes = 0
            },
            _append: function (e) {
              "string" == typeof e && (e = u.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes
            },
            _process: function (t) {
              var n = this._data,
                o = n.words,
                r = n.sigBytes,
                i = this.blockSize,
                s = r / (4 * i);
              if (t = (s = t ? e.ceil(s) : e.max((0 | s) - this._minBufferSize, 0)) * i, r = e.min(4 * t, r), t) {
                for (var c = 0; c < t; c += i) this._doProcessBlock(o, c);
                c = o.splice(0, t), n.sigBytes -= r
              }
              return new a.init(c, r)
            },
            clone: function () {
              var e = i.clone.call(this);
              return e._data = this._data.clone(), e
            },
            _minBufferSize: 0
          });
        o.Hasher = d.extend({
          cfg: i.extend(),
          init: function (e) {
            this.cfg = this.cfg.extend(e), this.reset()
          },
          reset: function () {
            d.reset.call(this), this._doReset()
          },
          update: function (e) {
            return this._append(e), this._process(), this
          },
          finalize: function (e) {
            return e && this._append(e), this._doFinalize()
          },
          blockSize: 16,
          _createHelper: function (e) {
            return function (t, n) {
              return new e.init(n).finalize(t)
            }
          },
          _createHmacHelper: function (e) {
            return function (t, n) {
              return new p.HMAC.init(e, n).finalize(t)
            }
          }
        });
        var p = n.algo = {};
        return n
      }(Math);
      o = (a = (n = d).lib).WordArray, r = a.Hasher, i = [], a = n.algo.SHA1 = r.extend({
        _doReset: function () {
          this._hash = new o.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520])
        },
        _doProcessBlock: function (e, t) {
          for (var n = this._hash.words, o = n[0], r = n[1], a = n[2], s = n[3], c = n[4], l = 0; 80 > l; l++) {
            if (16 > l) i[l] = 0 | e[t + l];
            else {
              var u = i[l - 3] ^ i[l - 8] ^ i[l - 14] ^ i[l - 16];
              i[l] = u << 1 | u >>> 31
            }
            u = (o << 5 | o >>> 27) + c + i[l], u = 20 > l ? u + (1518500249 + (r & a | ~r & s)) : 40 > l ? u + (1859775393 + (r ^ a ^ s)) : 60 > l ? u + ((r & a | r & s | a & s) - 1894007588) : u + ((r ^ a ^ s) - 899497514), c = s, s = a, a = r << 30 | r >>> 2, r = o, o = u
          }
          n[0] = n[0] + o | 0, n[1] = n[1] + r | 0, n[2] = n[2] + a | 0, n[3] = n[3] + s | 0, n[4] = n[4] + c | 0
        },
        _doFinalize: function () {
          var e = this._data,
            t = e.words,
            n = 8 * this._nDataBytes,
            o = 8 * e.sigBytes;
          return t[o >>> 5] |= 128 << 24 - o % 32, t[14 + (o + 64 >>> 9 << 4)] = Math.floor(n / 4294967296), t[15 + (o + 64 >>> 9 << 4)] = n, e.sigBytes = 4 * t.length, this._process(), this._hash
        },
        clone: function () {
          var e = r.clone.call(this);
          return e._hash = this._hash.clone(), e
        }
      }), n.SHA1 = r._createHelper(a), n.HmacSHA1 = r._createHmacHelper(a), u = (l = d).enc.Utf8, l.algo.HMAC = l.lib.Base.extend({
        init: function (e, t) {
          e = this._hasher = new e.init, "string" == typeof t && (t = u.parse(t));
          var n = e.blockSize,
            o = 4 * n;
          t.sigBytes > o && (t = e.finalize(t)), t.clamp();
          for (var r = this._oKey = t.clone(), i = this._iKey = t.clone(), a = r.words, s = i.words, c = 0; c < n; c++) a[c] ^= 1549556828, s[c] ^= 909522486;
          r.sigBytes = i.sigBytes = o, this.reset()
        },
        reset: function () {
          var e = this._hasher;
          e.reset(), e.update(this._iKey)
        },
        update: function (e) {
          return this._hasher.update(e), this
        },
        finalize: function (e) {
          var t = this._hasher;
          return e = t.finalize(e), t.reset(), t.finalize(this._oKey.clone().concat(e))
        }
      }), c = (s = d).lib.WordArray, s.enc.Base64 = {
        stringify: function (e) {
          var t = e.words,
            n = e.sigBytes,
            o = this._map;
          e.clamp();
          for (var r = [], i = 0; i < n; i += 3)
            for (var a = (t[i >>> 2] >>> 24 - i % 4 * 8 & 255) << 16 | (t[i + 1 >>> 2] >>> 24 - (i + 1) % 4 * 8 & 255) << 8 | t[i + 2 >>> 2] >>> 24 - (i + 2) % 4 * 8 & 255, s = 0; s < 4 && i + .75 * s < n; s++) r.push(o.charAt(a >>> 6 * (3 - s) & 63));
          var c = o.charAt(64);
          if (c)
            for (; r.length % 4;) r.push(c);
          return r.join("")
        },
        parse: function (e) {
          var t = e.length,
            n = this._map,
            o = n.charAt(64);
          if (o) {
            var r = e.indexOf(o); - 1 != r && (t = r)
          }
          for (var i = [], a = 0, s = 0; s < t; s++)
            if (s % 4) {
              var l = n.indexOf(e.charAt(s - 1)) << s % 4 * 2,
                u = n.indexOf(e.charAt(s)) >>> 6 - s % 4 * 2;
              i[a >>> 2] |= (l | u) << 24 - a % 4 * 8, a++
            } return c.create(i, a)
        },
        _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
      }, e.exports = d
    }, function (e, t, n) {
      var o = n(17).DOMParser,
        r = function (e) {
          function t(e) {
            var t = e.localName;
            return null == t && (t = e.baseName), null != t && "" != t || (t = e.nodeName), t
          }

          function n(e) {
            return "string" == typeof e ? e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;") : e
          }

          function r(e, t, n, o) {
            for (var r = 0; r < e.length; r++) {
              var i = e[r];
              if ("string" == typeof i) {
                if (i == o) break
              } else if (i instanceof RegExp) {
                if (i.test(o)) break
              } else if ("function" == typeof i && i(t, n, o)) break
            }
            return r != e.length
          }

          function i(t, n, o) {
            "property" === e.arrayAccessForm && (t[n] instanceof Array ? t[n + "_asArray"] = t[n] : t[n + "_asArray"] = [t[n]]), !(t[n] instanceof Array) && e.arrayAccessFormPaths.length > 0 && r(e.arrayAccessFormPaths, t, n, o) && (t[n] = [t[n]])
          }

          function a(e) {
            var t = e.split(/[-T:+Z]/g),
              n = new Date(t[0], t[1] - 1, t[2]),
              o = t[5].split(".");
            if (n.setHours(t[3], t[4], o[0]), o.length > 1 && n.setMilliseconds(o[1]), t[6] && t[7]) {
              var r = 60 * t[6] + Number(t[7]);
              r = 0 + ("-" == (/\d\d-\d\d:\d\d$/.test(e) ? "-" : "+") ? -1 * r : r), n.setMinutes(n.getMinutes() - r - n.getTimezoneOffset())
            } else -1 !== e.indexOf("Z", e.length - 1) && (n = new Date(Date.UTC(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds())));
            return n
          }

          function s(t, n, o, i) {
            return !(1 == n && e.xmlElementsFilter.length > 0) || r(e.xmlElementsFilter, t, o, i)
          }

          function c(n, o) {
            if (9 == n.nodeType) {
              for (var l = new Object, u = n.childNodes, d = 0; d < u.length; d++) 1 == (p = u.item(d)).nodeType && (l[f = t(p)] = c(p, f));
              return l
            }
            if (1 == n.nodeType) {
              for ((l = new Object).__cnt = 0, u = n.childNodes, d = 0; d < u.length; d++) {
                var p, f = t(p = u.item(d));
                if (8 != p.nodeType) {
                  var h = o + "." + f;
                  s(l, p.nodeType, f, h) && (l.__cnt++, null == l[f] ? (l[f] = c(p, h), i(l, f, h)) : (null != l[f] && (l[f] instanceof Array || (l[f] = [l[f]], i(l, f, h))), l[f][l[f].length] = c(p, h)))
                }
              }
              for (var m = 0; m < n.attributes.length; m++) {
                var g = n.attributes.item(m);
                l.__cnt++, l[e.attributePrefix + g.name] = g.value
              }
              var y = n.prefix;
              return null != y && "" != y && (l.__cnt++, l.__prefix = y), null != l["#text"] && (l.__text = l["#text"], l.__text instanceof Array && (l.__text = l.__text.join("\n")), e.stripWhitespaces && (l.__text = l.__text.trim()), delete l["#text"], "property" == e.arrayAccessForm && delete l["#text_asArray"], l.__text = function (t, n, o) {
                if (e.datetimeAccessFormPaths.length > 0) {
                  var i = o.split(".#")[0];
                  return r(e.datetimeAccessFormPaths, t, n, i) ? a(t) : t
                }
                return t
              }(l.__text, f, o + "." + f)), null != l["#cdata-section"] && (l.__cdata = l["#cdata-section"], delete l["#cdata-section"], "property" == e.arrayAccessForm && delete l["#cdata-section_asArray"]), 0 == l.__cnt && "text" == e.emptyNodeForm ? l = "" : 1 == l.__cnt && null != l.__text ? l = l.__text : 1 != l.__cnt || null == l.__cdata || e.keepCData ? l.__cnt > 1 && null != l.__text && e.skipEmptyTextNodesForObj && (e.stripWhitespaces && "" == l.__text || "" == l.__text.trim()) && delete l.__text : l = l.__cdata, delete l.__cnt, !e.enableToStringFunc || null == l.__text && null == l.__cdata || (l.toString = function () {
                return (null != this.__text ? this.__text : "") + (null != this.__cdata ? this.__cdata : "")
              }), l
            }
            if (3 == n.nodeType || 4 == n.nodeType) return n.nodeValue
          }

          function l(t, o, r, i) {
            var a = "<" + (null != t && null != t.__prefix ? t.__prefix + ":" : "") + o;
            if (null != r)
              for (var s = 0; s < r.length; s++) {
                var c = r[s],
                  l = t[c];
                e.escapeMode && (l = n(l)), a += " " + c.substr(e.attributePrefix.length) + "=", e.useDoubleQuotes ? a += '"' + l + '"' : a += "'" + l + "'"
              }
            return a + (i ? "/>" : ">")
          }

          function u(e, t) {
            return "</" + (null != e.__prefix ? e.__prefix + ":" : "") + t + ">"
          }

          function d(t, n) {
            return "property" == e.arrayAccessForm && (r = "_asArray", -1 !== (o = n.toString()).indexOf(r, o.length - r.length)) || 0 == n.toString().indexOf(e.attributePrefix) || 0 == n.toString().indexOf("__") || t[n] instanceof Function;
            var o, r
          }

          function p(e) {
            var t = 0;
            if (e instanceof Object)
              for (var n in e) d(e, n) || t++;
            return t
          }

          function f(t, n, o) {
            return 0 == e.jsonPropertiesFilter.length || "" == o || r(e.jsonPropertiesFilter, t, n, o)
          }

          function h(t) {
            var n = [];
            if (t instanceof Object)
              for (var o in t) - 1 == o.toString().indexOf("__") && 0 == o.toString().indexOf(e.attributePrefix) && n.push(o);
            return n
          }

          function m(t) {
            var o, r, i = "";
            return t instanceof Object ? i += (r = "", null != (o = t).__cdata && (r += "<![CDATA[" + o.__cdata + "]]>"), null != o.__text && (e.escapeMode ? r += n(o.__text) : r += o.__text), r) : null != t && (e.escapeMode ? i += n(t) : i += t), i
          }

          function g(e, t) {
            return "" === e ? t : e + "." + t
          }

          function y(e, t, n, o) {
            var r = "";
            if (0 == e.length) r += l(e, t, n, !0);
            else
              for (var i = 0; i < e.length; i++) r += l(e[i], t, h(e[i]), !1), r += v(e[i], g(o, t)), r += u(e[i], t);
            return r
          }

          function v(e, t) {
            var n = "";
            if (p(e) > 0)
              for (var o in e)
                if (!d(e, o) && ("" == t || f(e, o, g(t, o)))) {
                  var r = e[o],
                    i = h(r);
                  null == r || null == r ? n += l(r, o, i, !0) : r instanceof Object ? r instanceof Array ? n += y(r, o, i, t) : r instanceof Date ? (n += l(r, o, i, !1), n += r.toISOString(), n += u(r, o)) : p(r) > 0 || null != r.__text || null != r.__cdata ? (n += l(r, o, i, !1), n += v(r, g(t, o)), n += u(r, o)) : n += l(r, o, i, !0) : (n += l(r, o, i, !1), n += m(r), n += u(r, o))
                } return n + m(e)
          }
          void 0 === (e = e || {}).escapeMode && (e.escapeMode = !0), e.attributePrefix = e.attributePrefix || "_", e.arrayAccessForm = e.arrayAccessForm || "none", e.emptyNodeForm = e.emptyNodeForm || "text", void 0 === e.enableToStringFunc && (e.enableToStringFunc = !0), e.arrayAccessFormPaths = e.arrayAccessFormPaths || [], void 0 === e.skipEmptyTextNodesForObj && (e.skipEmptyTextNodesForObj = !0), void 0 === e.stripWhitespaces && (e.stripWhitespaces = !0), e.datetimeAccessFormPaths = e.datetimeAccessFormPaths || [], void 0 === e.useDoubleQuotes && (e.useDoubleQuotes = !1), e.xmlElementsFilter = e.xmlElementsFilter || [], e.jsonPropertiesFilter = e.jsonPropertiesFilter || [], void 0 === e.keepCData && (e.keepCData = !1), this.parseXmlString = function (e) {
            var t;
            if (void 0 === e) return null;
            if (o) {
              var n = new o,
                r = null;
              try {
                r = n.parseFromString("INVALID", "text/xml").getElementsByTagName("parsererror")[0].namespaceURI
              } catch (i) {
                r = null
              }
              try {
                t = n.parseFromString(e, "text/xml"), null != r && t.getElementsByTagNameNS(r, "parsererror").length > 0 && (t = null)
              } catch (i) {
                t = null
              }
            } else 0 == e.indexOf("<?") && (e = e.substr(e.indexOf("?>") + 2)), (t = new ActiveXObject("Microsoft.XMLDOM")).async = "false", t.loadXML(e);
            return t
          }, this.asArray = function (e) {
            return void 0 === e || null == e ? [] : e instanceof Array ? e : [e]
          }, this.toXmlDateTime = function (e) {
            return e instanceof Date ? e.toISOString() : "number" == typeof e ? new Date(e).toISOString() : null
          }, this.asDateTime = function (e) {
            return "string" == typeof e ? a(e) : e
          }, this.xml2json = function (e) {
            return c(e)
          }, this.xml_str2json = function (e) {
            var t = this.parseXmlString(e);
            return null != t ? this.xml2json(t) : null
          }, this.json2xml_str = function (e) {
            return v(e, "")
          }, this.json2xml = function (e) {
            var t = this.json2xml_str(e);
            return this.parseXmlString(t)
          }, this.getVersion = function () {
            return "1.2.0"
          }
        };
      e.exports = function (e) {
        if (!e) return null;
        var t = (new o).parseFromString(e, "text/xml"),
          n = (new r).xml2json(t);
        return n.html && n.getElementsByTagName("parsererror").length ? null : n
      }
    }, function (e, t, n) {
      var o = n(4);
      t.DOMImplementation = o.DOMImplementation, t.XMLSerializer = o.XMLSerializer, t.DOMParser = n(18).DOMParser
    }, function (e, t, n) {
      var o = n(1),
        r = n(4),
        i = n(19),
        a = n(20),
        s = r.DOMImplementation,
        c = o.NAMESPACE,
        l = a.ParseError,
        u = a.XMLReader;

      function d(e) {
        return e.replace(/\r[\n\u0085]/g, "\n").replace(/[\r\u0085\u2028]/g, "\n")
      }

      function p(e) {
        this.options = e || {
          locator: {}
        }
      }

      function f() {
        this.cdata = !1
      }

      function h(e, t) {
        t.lineNumber = e.lineNumber, t.columnNumber = e.columnNumber
      }

      function m(e, t, n) {
        return "string" == typeof e ? e.substr(t, n) : e.length >= t + n || t ? new java.lang.String(e, t, n) + "" : e
      }

      function g(e, t) {
        e.currentElement ? e.currentElement.appendChild(t) : e.doc.appendChild(t)
      }
      p.prototype.parseFromString = function (e, t) {
        var n = this.options,
          o = new u,
          r = n.domBuilder || new f,
          a = n.errorHandler,
          s = n.locator,
          l = n.xmlns || {},
          p = /\/x?html?$/.test(t),
          h = p ? i.HTML_ENTITIES : i.XML_ENTITIES;
        s && r.setDocumentLocator(s), o.errorHandler = function (e, t, n) {
          if (!e) {
            if (t instanceof f) return t;
            e = t
          }
          var o = {},
            r = e instanceof Function;

          function i(t) {
            var i = e[t];
            !i && r && (i = 2 == e.length ? function (n) {
              e(t, n)
            } : e), o[t] = i && function (e) {
              i("[xmldom " + t + "]\t" + e + function (e) {
                if (e) return "\n@" + (e.systemId || "") + "#[line:" + e.lineNumber + ",col:" + e.columnNumber + "]"
              }(n))
            } || function () {}
          }
          return n = n || {}, i("warning"), i("error"), i("fatalError"), o
        }(a, r, s), o.domBuilder = n.domBuilder || r, p && (l[""] = c.HTML), l.xml = l.xml || c.XML;
        var m = n.normalizeLineEndings || d;
        return e && "string" == typeof e ? o.parse(m(e), l, h) : o.errorHandler.error("invalid doc source"), r.doc
      }, f.prototype = {
        startDocument: function () {
          this.doc = (new s).createDocument(null, null, null), this.locator && (this.doc.documentURI = this.locator.systemId)
        },
        startElement: function (e, t, n, o) {
          var r = this.doc,
            i = r.createElementNS(e, n || t),
            a = o.length;
          g(this, i), this.currentElement = i, this.locator && h(this.locator, i);
          for (var s = 0; s < a; s++) {
            e = o.getURI(s);
            var c = o.getValue(s),
              l = (n = o.getQName(s), r.createAttributeNS(e, n));
            this.locator && h(o.getLocator(s), l), l.value = l.nodeValue = c, i.setAttributeNode(l)
          }
        },
        endElement: function (e, t, n) {
          var o = this.currentElement;
          o.tagName, this.currentElement = o.parentNode
        },
        startPrefixMapping: function (e, t) {},
        endPrefixMapping: function (e) {},
        processingInstruction: function (e, t) {
          var n = this.doc.createProcessingInstruction(e, t);
          this.locator && h(this.locator, n), g(this, n)
        },
        ignorableWhitespace: function (e, t, n) {},
        characters: function (e, t, n) {
          if (e = m.apply(this, arguments)) {
            if (this.cdata) var o = this.doc.createCDATASection(e);
            else o = this.doc.createTextNode(e);
            this.currentElement ? this.currentElement.appendChild(o) : /^\s*$/.test(e) && this.doc.appendChild(o), this.locator && h(this.locator, o)
          }
        },
        skippedEntity: function (e) {},
        endDocument: function () {
          this.doc.normalize()
        },
        setDocumentLocator: function (e) {
          (this.locator = e) && (e.lineNumber = 0)
        },
        comment: function (e, t, n) {
          e = m.apply(this, arguments);
          var o = this.doc.createComment(e);
          this.locator && h(this.locator, o), g(this, o)
        },
        startCDATA: function () {
          this.cdata = !0
        },
        endCDATA: function () {
          this.cdata = !1
        },
        startDTD: function (e, t, n) {
          var o = this.doc.implementation;
          if (o && o.createDocumentType) {
            var r = o.createDocumentType(e, t, n);
            this.locator && h(this.locator, r), g(this, r), this.doc.doctype = r
          }
        },
        warning: function (e) {},
        error: function (e) {},
        fatalError: function (e) {
          throw new l(e, this.locator)
        }
      }, "endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g, (function (e) {
        f.prototype[e] = function () {
          return null
        }
      })), t.__DOMHandler = f, t.normalizeLineEndings = d, t.DOMParser = p
    }, function (e, t, n) {
      var o = n(1).freeze;
      t.XML_ENTITIES = o({
        amp: "&",
        apos: "'",
        gt: ">",
        lt: "<",
        quot: '"'
      }), t.HTML_ENTITIES = o({
        lt: "<",
        gt: ">",
        amp: "&",
        quot: '"',
        apos: "'",
        Agrave: "À",
        Aacute: "Á",
        Acirc: "Â",
        Atilde: "Ã",
        Auml: "Ä",
        Aring: "Å",
        AElig: "Æ",
        Ccedil: "Ç",
        Egrave: "È",
        Eacute: "É",
        Ecirc: "Ê",
        Euml: "Ë",
        Igrave: "Ì",
        Iacute: "Í",
        Icirc: "Î",
        Iuml: "Ï",
        ETH: "Ð",
        Ntilde: "Ñ",
        Ograve: "Ò",
        Oacute: "Ó",
        Ocirc: "Ô",
        Otilde: "Õ",
        Ouml: "Ö",
        Oslash: "Ø",
        Ugrave: "Ù",
        Uacute: "Ú",
        Ucirc: "Û",
        Uuml: "Ü",
        Yacute: "Ý",
        THORN: "Þ",
        szlig: "ß",
        agrave: "à",
        aacute: "á",
        acirc: "â",
        atilde: "ã",
        auml: "ä",
        aring: "å",
        aelig: "æ",
        ccedil: "ç",
        egrave: "è",
        eacute: "é",
        ecirc: "ê",
        euml: "ë",
        igrave: "ì",
        iacute: "í",
        icirc: "î",
        iuml: "ï",
        eth: "ð",
        ntilde: "ñ",
        ograve: "ò",
        oacute: "ó",
        ocirc: "ô",
        otilde: "õ",
        ouml: "ö",
        oslash: "ø",
        ugrave: "ù",
        uacute: "ú",
        ucirc: "û",
        uuml: "ü",
        yacute: "ý",
        thorn: "þ",
        yuml: "ÿ",
        nbsp: " ",
        iexcl: "¡",
        cent: "¢",
        pound: "£",
        curren: "¤",
        yen: "¥",
        brvbar: "¦",
        sect: "§",
        uml: "¨",
        copy: "©",
        ordf: "ª",
        laquo: "«",
        not: "¬",
        shy: "­­",
        reg: "®",
        macr: "¯",
        deg: "°",
        plusmn: "±",
        sup2: "²",
        sup3: "³",
        acute: "´",
        micro: "µ",
        para: "¶",
        middot: "·",
        cedil: "¸",
        sup1: "¹",
        ordm: "º",
        raquo: "»",
        frac14: "¼",
        frac12: "½",
        frac34: "¾",
        iquest: "¿",
        times: "×",
        divide: "÷",
        forall: "∀",
        part: "∂",
        exist: "∃",
        empty: "∅",
        nabla: "∇",
        isin: "∈",
        notin: "∉",
        ni: "∋",
        prod: "∏",
        sum: "∑",
        minus: "−",
        lowast: "∗",
        radic: "√",
        prop: "∝",
        infin: "∞",
        ang: "∠",
        and: "∧",
        or: "∨",
        cap: "∩",
        cup: "∪",
        int: "∫",
        there4: "∴",
        sim: "∼",
        cong: "≅",
        asymp: "≈",
        ne: "≠",
        equiv: "≡",
        le: "≤",
        ge: "≥",
        sub: "⊂",
        sup: "⊃",
        nsub: "⊄",
        sube: "⊆",
        supe: "⊇",
        oplus: "⊕",
        otimes: "⊗",
        perp: "⊥",
        sdot: "⋅",
        Alpha: "Α",
        Beta: "Β",
        Gamma: "Γ",
        Delta: "Δ",
        Epsilon: "Ε",
        Zeta: "Ζ",
        Eta: "Η",
        Theta: "Θ",
        Iota: "Ι",
        Kappa: "Κ",
        Lambda: "Λ",
        Mu: "Μ",
        Nu: "Ν",
        Xi: "Ξ",
        Omicron: "Ο",
        Pi: "Π",
        Rho: "Ρ",
        Sigma: "Σ",
        Tau: "Τ",
        Upsilon: "Υ",
        Phi: "Φ",
        Chi: "Χ",
        Psi: "Ψ",
        Omega: "Ω",
        alpha: "α",
        beta: "β",
        gamma: "γ",
        delta: "δ",
        epsilon: "ε",
        zeta: "ζ",
        eta: "η",
        theta: "θ",
        iota: "ι",
        kappa: "κ",
        lambda: "λ",
        mu: "μ",
        nu: "ν",
        xi: "ξ",
        omicron: "ο",
        pi: "π",
        rho: "ρ",
        sigmaf: "ς",
        sigma: "σ",
        tau: "τ",
        upsilon: "υ",
        phi: "φ",
        chi: "χ",
        psi: "ψ",
        omega: "ω",
        thetasym: "ϑ",
        upsih: "ϒ",
        piv: "ϖ",
        OElig: "Œ",
        oelig: "œ",
        Scaron: "Š",
        scaron: "š",
        Yuml: "Ÿ",
        fnof: "ƒ",
        circ: "ˆ",
        tilde: "˜",
        ensp: " ",
        emsp: " ",
        thinsp: " ",
        zwnj: "‌",
        zwj: "‍",
        lrm: "‎",
        rlm: "‏",
        ndash: "–",
        mdash: "—",
        lsquo: "‘",
        rsquo: "’",
        sbquo: "‚",
        ldquo: "“",
        rdquo: "”",
        bdquo: "„",
        dagger: "†",
        Dagger: "‡",
        bull: "•",
        hellip: "…",
        permil: "‰",
        prime: "′",
        Prime: "″",
        lsaquo: "‹",
        rsaquo: "›",
        oline: "‾",
        euro: "€",
        trade: "™",
        larr: "←",
        uarr: "↑",
        rarr: "→",
        darr: "↓",
        harr: "↔",
        crarr: "↵",
        lceil: "⌈",
        rceil: "⌉",
        lfloor: "⌊",
        rfloor: "⌋",
        loz: "◊",
        spades: "♠",
        clubs: "♣",
        hearts: "♥",
        diams: "♦"
      }), t.entityMap = t.HTML_ENTITIES
    }, function (e, t, n) {
      var o = n(1).NAMESPACE,
        r = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,
        i = new RegExp("[\\-\\.0-9" + r.source.slice(1, -1) + "\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),
        a = new RegExp("^" + r.source + i.source + "*(?::" + r.source + i.source + "*)?$");

      function s(e, t) {
        this.message = e, this.locator = t, Error.captureStackTrace && Error.captureStackTrace(this, s)
      }

      function c() {}

      function l(e, t) {
        return t.lineNumber = e.lineNumber, t.columnNumber = e.columnNumber, t
      }

      function u(e, t, n, r, i, a) {
        function s(e, t, o) {
          n.attributeNames.hasOwnProperty(e) && a.fatalError("Attribute " + e + " redefined"), n.addValue(e, t.replace(/[\t\n\r]/g, " ").replace(/&#?\w+;/g, i), o)
        }
        for (var c, l = ++t, u = 0;;) {
          var d = e.charAt(l);
          switch (d) {
            case "=":
              if (1 === u) c = e.slice(t, l), u = 3;
              else {
                if (2 !== u) throw new Error("attribute equal must after attrName");
                u = 3
              }
              break;
            case "'":
            case '"':
              if (3 === u || 1 === u) {
                if (1 === u && (a.warning('attribute value must after "="'), c = e.slice(t, l)), t = l + 1, !((l = e.indexOf(d, t)) > 0)) throw new Error("attribute value no end '" + d + "' match");
                s(c, p = e.slice(t, l), t - 1), u = 5
              } else {
                if (4 != u) throw new Error('attribute value must after "="');
                s(c, p = e.slice(t, l), t), a.warning('attribute "' + c + '" missed start quot(' + d + ")!!"), t = l + 1, u = 5
              }
              break;
            case "/":
              switch (u) {
                case 0:
                  n.setTagName(e.slice(t, l));
                case 5:
                case 6:
                case 7:
                  u = 7, n.closed = !0;
                case 4:
                case 1:
                case 2:
                  break;
                default:
                  throw new Error("attribute invalid close char('/')")
              }
              break;
            case "":
              return a.error("unexpected end of input"), 0 == u && n.setTagName(e.slice(t, l)), l;
            case ">":
              switch (u) {
                case 0:
                  n.setTagName(e.slice(t, l));
                case 5:
                case 6:
                case 7:
                  break;
                case 4:
                case 1:
                  "/" === (p = e.slice(t, l)).slice(-1) && (n.closed = !0, p = p.slice(0, -1));
                case 2:
                  2 === u && (p = c), 4 == u ? (a.warning('attribute "' + p + '" missed quot(")!'), s(c, p, t)) : (o.isHTML(r[""]) && p.match(/^(?:disabled|checked|selected)$/i) || a.warning('attribute "' + p + '" missed value!! "' + p + '" instead!!'), s(p, p, t));
                  break;
                case 3:
                  throw new Error("attribute value missed!!")
              }
              return l;
            case "":
              d = " ";
            default:
              if (d <= " ") switch (u) {
                case 0:
                  n.setTagName(e.slice(t, l)), u = 6;
                  break;
                case 1:
                  c = e.slice(t, l), u = 2;
                  break;
                case 4:
                  var p = e.slice(t, l);
                  a.warning('attribute "' + p + '" missed quot(")!!'), s(c, p, t);
                case 5:
                  u = 6
              } else switch (u) {
                case 2:
                  n.tagName, o.isHTML(r[""]) && c.match(/^(?:disabled|checked|selected)$/i) || a.warning('attribute "' + c + '" missed value!! "' + c + '" instead2!!'), s(c, c, t), t = l, u = 1;
                  break;
                case 5:
                  a.warning('attribute space is required"' + c + '"!!');
                case 6:
                  u = 1, t = l;
                  break;
                case 3:
                  u = 4, t = l;
                  break;
                case 7:
                  throw new Error("elements closed character '/' and '>' must be connected to")
              }
          }
          l++
        }
      }

      function d(e, t, n) {
        for (var r = e.tagName, i = null, a = e.length; a--;) {
          var s = e[a],
            c = s.qName,
            l = s.value;
          if ((f = c.indexOf(":")) > 0) var u = s.prefix = c.slice(0, f),
            d = c.slice(f + 1),
            p = "xmlns" === u && d;
          else d = c, u = null, p = "xmlns" === c && "";
          s.localName = d, !1 !== p && (null == i && (i = {}, h(n, n = {})), n[p] = i[p] = l, s.uri = o.XMLNS, t.startPrefixMapping(p, l))
        }
        for (a = e.length; a--;)(u = (s = e[a]).prefix) && ("xml" === u && (s.uri = o.XML), "xmlns" !== u && (s.uri = n[u || ""]));
        var f;
        (f = r.indexOf(":")) > 0 ? (u = e.prefix = r.slice(0, f), d = e.localName = r.slice(f + 1)) : (u = null, d = e.localName = r);
        var m = e.uri = n[u || ""];
        if (t.startElement(m, d, r, e), !e.closed) return e.currentNSMap = n, e.localNSMap = i, !0;
        if (t.endElement(m, d, r), i)
          for (u in i) Object.prototype.hasOwnProperty.call(i, u) && t.endPrefixMapping(u)
      }

      function p(e, t, n, o, r) {
        if (/^(?:script|textarea)$/i.test(n)) {
          var i = e.indexOf("</" + n + ">", t),
            a = e.substring(t + 1, i);
          if (/[&<]/.test(a)) return /^script$/i.test(n) ? (r.characters(a, 0, a.length), i) : (a = a.replace(/&#?\w+;/g, o), r.characters(a, 0, a.length), i)
        }
        return t + 1
      }

      function f(e, t, n, o) {
        var r = o[n];
        return null == r && ((r = e.lastIndexOf("</" + n + ">")) < t && (r = e.lastIndexOf("</" + n)), o[n] = r), r < t
      }

      function h(e, t) {
        for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n])
      }

      function m(e, t, n, o) {
        if ("-" === e.charAt(t + 2)) return "-" === e.charAt(t + 3) ? (r = e.indexOf("--\x3e", t + 4)) > t ? (n.comment(e, t + 4, r - t - 4), r + 3) : (o.error("Unclosed comment"), -1) : -1;
        if ("CDATA[" == e.substr(t + 3, 6)) {
          var r = e.indexOf("]]>", t + 9);
          return n.startCDATA(), n.characters(e, t + 9, r - t - 9), n.endCDATA(), r + 3
        }
        var i = function (e, t) {
            var n, o = [],
              r = /'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;
            for (r.lastIndex = t, r.exec(e); n = r.exec(e);)
              if (o.push(n), n[1]) return o
          }(e, t),
          a = i.length;
        if (a > 1 && /!doctype/i.test(i[0][0])) {
          var s = i[1][0],
            c = !1,
            l = !1;
          a > 3 && (/^public$/i.test(i[2][0]) ? (c = i[3][0], l = a > 4 && i[4][0]) : /^system$/i.test(i[2][0]) && (l = i[3][0]));
          var u = i[a - 1];
          return n.startDTD(s, c, l), n.endDTD(), u.index + u[0].length
        }
        return -1
      }

      function g(e, t, n) {
        var o = e.indexOf("?>", t);
        if (o) {
          var r = e.substring(t, o).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);
          return r ? (r[0].length, n.processingInstruction(r[1], r[2]), o + 2) : -1
        }
        return -1
      }

      function y() {
        this.attributeNames = {}
      }
      s.prototype = new Error, s.prototype.name = s.name, c.prototype = {
        parse: function (e, t, n) {
          var r = this.domBuilder;
          r.startDocument(), h(t, t = {}),
            function (e, t, n, r, i) {
              function a(e) {
                var t = e.slice(1, -1);
                return Object.hasOwnProperty.call(n, t) ? n[t] : "#" === t.charAt(0) ? function (e) {
                  if (e > 65535) {
                    var t = 55296 + ((e -= 65536) >> 10),
                      n = 56320 + (1023 & e);
                    return String.fromCharCode(t, n)
                  }
                  return String.fromCharCode(e)
                }(parseInt(t.substr(1).replace("x", "0x"))) : (i.error("entity not found:" + e), e)
              }

              function c(t) {
                if (t > O) {
                  var n = e.substring(O, t).replace(/&#?\w+;/g, a);
                  k && h(O), r.characters(n, 0, t - O), O = t
                }
              }

              function h(t, n) {
                for (; t >= _ && (n = x.exec(e));) v = n.index, _ = v + n[0].length, k.lineNumber++;
                k.columnNumber = t - v + 1
              }
              for (var v = 0, _ = 0, x = /.*(?:\r\n?|\n)|.*$/g, k = r.locator, b = [{
                  currentNSMap: t
                }], S = {}, O = 0;;) {
                try {
                  var C = e.indexOf("<", O);
                  if (C < 0) {
                    if (!e.substr(O).match(/^\s*$/)) {
                      var w = r.doc,
                        E = w.createTextNode(e.substr(O));
                      w.appendChild(E), r.currentElement = E
                    }
                    return
                  }
                  switch (C > O && c(C), e.charAt(C + 1)) {
                    case "/":
                      var T = e.indexOf(">", C + 3),
                        A = e.substring(C + 2, T).replace(/[ \t\n\r]+$/g, ""),
                        R = b.pop();
                      T < 0 ? (A = e.substring(C + 2).replace(/[\s<].*/, ""), i.error("end tag name: " + A + " is not complete:" + R.tagName), T = C + 1 + A.length) : A.match(/\s</) && (A = A.replace(/[\s<].*/, ""), i.error("end tag name: " + A + " maybe not complete"), T = C + 1 + A.length);
                      var P = R.localNSMap,
                        I = R.tagName == A;
                      if (I || R.tagName && R.tagName.toLowerCase() == A.toLowerCase()) {
                        if (r.endElement(R.uri, R.localName, A), P)
                          for (var N in P) Object.prototype.hasOwnProperty.call(P, N) && r.endPrefixMapping(N);
                        I || i.fatalError("end tag name: " + A + " is not match the current start tagName:" + R.tagName)
                      } else b.push(R);
                      T++;
                      break;
                    case "?":
                      k && h(C), T = g(e, C, r);
                      break;
                    case "!":
                      k && h(C), T = m(e, C, r, i);
                      break;
                    default:
                      k && h(C);
                      var M = new y,
                        D = b[b.length - 1].currentNSMap,
                        F = (T = u(e, C, M, D, a, i), M.length);
                      if (!M.closed && f(e, T, M.tagName, S) && (M.closed = !0, n.nbsp || i.warning("unclosed xml attribute")), k && F) {
                        for (var L = l(k, {}), U = 0; U < F; U++) {
                          var B = M[U];
                          h(B.offset), B.locator = l(k, {})
                        }
                        r.locator = L, d(M, r, D) && b.push(M), r.locator = k
                      } else d(M, r, D) && b.push(M);
                      o.isHTML(M.uri) && !M.closed ? T = p(e, T, M.tagName, a, r) : T++
                  }
                } catch ($) {
                  if ($ instanceof s) throw $;
                  i.error("element parse error: " + $), T = -1
                }
                T > O ? O = T : c(Math.max(C, O) + 1)
              }
            }(e, t, n, r, this.errorHandler), r.endDocument()
        }
      }, y.prototype = {
        setTagName: function (e) {
          if (!a.test(e)) throw new Error("invalid tagName:" + e);
          this.tagName = e
        },
        addValue: function (e, t, n) {
          if (!a.test(e)) throw new Error("invalid attribute:" + e);
          this.attributeNames[e] = this.length, this[this.length++] = {
            qName: e,
            value: t,
            offset: n
          }
        },
        length: 0,
        getLocalName: function (e) {
          return this[e].localName
        },
        getLocator: function (e) {
          return this[e].locator
        },
        getQName: function (e) {
          return this[e].qName
        },
        getURI: function (e) {
          return this[e].uri
        },
        getValue: function (e) {
          return this[e].value
        }
      }, t.XMLReader = c, t.ParseError = s
    }, function (e, t) {
      function n(e) {
        return (n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
          return typeof e
        } : function (e) {
          return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
        })(e)
      }
      var o = "a-zA-Z_À-ÖØ-öø-ÿͰ-ͽͿ-῿‌-‍⁰-↏Ⰰ-⿿、-퟿豈-﷏ﷰ-�",
        r = new RegExp("^([^" + o + "])|^((x|X)(m|M)(l|L))|([^" + o + "-.0-9·̀-ͯ‿⁀])", "g"),
        i = /[^\x09\x0A\x0D\x20-\xFF\x85\xA0-\uD7FF\uE000-\uFDCF\uFDE0-\uFFFD]/gm,
        a = function (e) {
          var t = [];
          if (e instanceof Object)
            for (var n in e) e.hasOwnProperty(n) && t.push(n);
          return t
        },
        s = function (e, t) {
          var o = function (e, n, o, i, a) {
            var s = void 0 !== t.indent ? t.indent : "\t",
              c = t.prettyPrint ? "\n" + new Array(i).join(s) : "";
            t.removeIllegalNameCharacters && (e = e.replace(r, "_"));
            var l = [c, "<", e, o || ""];
            return n && n.length > 0 ? (l.push(">"), l.push(n), a && l.push(c), l.push("</"), l.push(e), l.push(">")) : l.push("/>"), l.join("")
          };
          return function e(r, s, c) {
            var l = n(r);
            switch ((Array.isArray ? Array.isArray(r) : r instanceof Array) ? l = "array" : r instanceof Date && (l = "date"), l) {
              case "array":
                var u = [];
                return r.map((function (t) {
                  u.push(e(t, 0, c + 1))
                })), t.prettyPrint && u.push("\n"), u.join("");
              case "date":
                return r.toJSON ? r.toJSON() : r + "";
              case "object":
                var d = [];
                for (var p in r)
                  if (r.hasOwnProperty(p))
                    if (r[p] instanceof Array)
                      for (var f in r[p]) r[p].hasOwnProperty(f) && d.push(o(p, e(r[p][f], 0, c + 1), null, c + 1, a(r[p][f]).length));
                    else d.push(o(p, e(r[p], 0, c + 1), null, c + 1));
                return t.prettyPrint && d.length > 0 && d.push("\n"), d.join("");
              case "function":
                return r();
              default:
                return t.escape ? ("" + r).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/'/g, "&apos;").replace(/"/g, "&quot;").replace(i, "") : "" + r
            }
          }(e, 0, 0)
        },
        c = function (e) {
          var t = ['<?xml version="1.0" encoding="UTF-8"'];
          return e && t.push(' standalone="yes"'), t.push("?>"), t.join("")
        };
      e.exports = function (e, t) {
        if (t || (t = {
            xmlHeader: {
              standalone: !0
            },
            prettyPrint: !0,
            indent: "  "
          }), "string" == typeof e) try {
          e = JSON.parse(e.toString())
        } catch (i) {
          return !1
        }
        var o = "",
          r = "";
        return t && ("object" == n(t) ? (t.xmlHeader && (o = c(!!t.xmlHeader.standalone)), void 0 !== t.docType && (r = "<!DOCTYPE " + t.docType + ">")) : o = c()), [o, (t = t || {}).prettyPrint && r ? "\n" : "", r, s(e, t)].join("").replace(/\n{2,}/g, "\n").replace(/\s+$/g, "")
      }
    }, function (e, t, n) {
      (function (e) {
        var n, o, r, i;

        function a(e) {
          return (a = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
            return typeof e
          } : function (e) {
            return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
          })(e);
          /*! For license information please see beacon_mp.min.js.LICENSE.txt */
        }
        i = function () {
          return function (e) {
            var t = {};

            function n(o) {
              if (t[o]) return t[o].exports;
              var r = t[o] = {
                i: o,
                l: !1,
                exports: {}
              };
              return e[o].call(r.exports, r, r.exports, n), r.l = !0, r.exports
            }
            return n.m = e, n.c = t, n.d = function (e, t, o) {
              n.o(e, t) || Object.defineProperty(e, t, {
                enumerable: !0,
                get: o
              })
            }, n.r = function (e) {
              "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
                value: "Module"
              }), Object.defineProperty(e, "__esModule", {
                value: !0
              })
            }, n.t = function (e, t) {
              if (1 & t && (e = n(e)), 8 & t) return e;
              if (4 & t && "object" == a(e) && e && e.__esModule) return e;
              var o = Object.create(null);
              if (n.r(o), Object.defineProperty(o, "default", {
                  enumerable: !0,
                  value: e
                }), 2 & t && "string" != typeof e)
                for (var r in e) n.d(o, r, function (t) {
                  return e[t]
                }.bind(null, r));
              return o
            }, n.n = function (e) {
              var t = e && e.__esModule ? function () {
                return e.default
              } : function () {
                return e
              };
              return n.d(t, "a", t), t
            }, n.o = function (e, t) {
              return Object.prototype.hasOwnProperty.call(e, t)
            }, n.p = "", n(n.s = 6)
          }([function (e, t, n) {
            Object.defineProperty(t, "__esModule", {
              value: !0
            }), t.BEACON_ATTA_REQUEST_URL = t.BEACON_ATTA_TOKEN = t.BEACON_ATTA_ID = t.BEACON_CONFIG_HTTPS_URL = t.BEACON_CONFIG_REQUEST_TIME = t.BEACON_CONFIG = t.BEACON_SENDING_IDS_KEY = t.BEACON_NORMAL_LOG_ID_KEY = t.BEACON_DRIECT_LOG_ID_KEY = t.BEACON_LASE_REPORT_TIME_KEY = t.BEACON_DEVICE_ID_KEY = t.BEACON_STORE_PREFIX = t.BEACON_LOG_ID_KEY = t.BEACON_IS_REALTIME_KEY = t.BEACON_DELAY_DEFAULT = t.BEACON_HTTPS_URL = t.BEACON_HTTP_URL = void 0, t.BEACON_HTTP_URL = "http://oth.eve.mdt.qq.com:8080/analytics/v2_upload", t.BEACON_HTTPS_URL = "https://otheve.beacon.qq.com/analytics/v2_upload", t.BEACON_DELAY_DEFAULT = 3e3, t.BEACON_IS_REALTIME_KEY = "A99", t.BEACON_LOG_ID_KEY = "A100", t.BEACON_STORE_PREFIX = "__BEACON_", t.BEACON_DEVICE_ID_KEY = "__BEACON_deviceId", t.BEACON_LASE_REPORT_TIME_KEY = "last_report_time", t.BEACON_DRIECT_LOG_ID_KEY = "direct_log_id", t.BEACON_NORMAL_LOG_ID_KEY = "normal_log_id", t.BEACON_SENDING_IDS_KEY = "sending_event_ids", t.BEACON_CONFIG = "beacon_config", t.BEACON_CONFIG_REQUEST_TIME = "beacon_config_request_time", t.BEACON_CONFIG_HTTPS_URL = "https://oth.str.beacon.qq.com/trpc.beacon.configserver.BeaconConfigService/QueryConfig", t.BEACON_ATTA_ID = "00400014144", t.BEACON_ATTA_TOKEN = "6478159937", t.BEACON_ATTA_REQUEST_URL = "https://h.trace.qq.com/kv"
          }, function (e, t, n) {
            Object.defineProperty(t, "__esModule", {
              value: !0
            }), t.getEventId = t.replaceSymbol = t.replace = t.assert = void 0;
            var o = n(0),
              r = n(9);

            function i(e) {
              if ("string" != typeof e) return e;
              try {
                return e.replace(new RegExp("\\|", "g"), "%7C").replace(new RegExp("\\&", "g"), "%26").replace(new RegExp("\\=", "g"), "%3D").replace(new RegExp("\\+", "g"), "%2B")
              } catch (t) {
                return ""
              }
            }
            Object.defineProperty(t, "EventEmiter", {
              enumerable: !0,
              get: function () {
                return r.EventEmiter
              }
            }), t.assert = function (e, t) {
              if (!e) throw t instanceof Error ? t : new Error(t)
            }, t.replace = function (e, t) {
              for (var n = {}, o = 0, r = Object.keys(e); o < r.length; o++) {
                var a = r[o],
                  s = e[a];
                if ("string" == typeof s) n[i(a)] = i(s);
                else {
                  if (t) throw new Error("value mast be string  !!!!");
                  n[i(String(a))] = i(String(s))
                }
              }
              return n
            }, t.replaceSymbol = i, t.getEventId = function (e) {
              return String(e[o.BEACON_IS_REALTIME_KEY]) + String(e[o.BEACON_LOG_ID_KEY])
            }
          }, function (e, t, n) {
            Object.defineProperty(t, "__esModule", {
              value: !0
            }), t.createPipeline = void 0;
            var o = function () {};
            t.createPipeline = function (e) {
              if (!e || !e.reduce || !e.length) throw new TypeError("createPipeline 方法需要传入至少有一个 pipe 的数组");
              return 1 === e.length ? function (t, n) {
                e[0](t, n || o)
              } : e.reduce((function (e, t) {
                return function (n, r) {
                  return void 0 === r && (r = o), e(n, (function (e) {
                    return null == t ? void 0 : t(e, r)
                  }))
                }
              }))
            }
          }, function (e, t, n) {
            Object.defineProperty(t, "__esModule", {
              value: !0
            });
            var o = n(0),
              r = function () {
                function e(e, t, n, r) {
                  this.requestParams = {}, this.network = r, this.requestParams.attaid = o.BEACON_ATTA_ID, this.requestParams.token = o.BEACON_ATTA_TOKEN, this.requestParams.product_id = e.appkey, this.requestParams.platform = n, this.requestParams.uin = t.deviceId, this.requestParams.model = "", this.requestParams.os = n, this.requestParams.app_version = e.appVersion, this.requestParams.sdk_version = t.sdkVersion, this.requestParams.error_stack = ""
                }
                return e.prototype.reportError = function (e, t) {
                  this.requestParams._dc = Math.random(), this.requestParams.error_msg = t, this.requestParams.error_code = e, this.network.get(o.BEACON_ATTA_REQUEST_URL, {
                    params: this.requestParams
                  })
                }, e
              }();
            t.default = r
          }, function (e, t, n) {
            Object.defineProperty(t, "__esModule", {
              value: !0
            }), t.Config = void 0, t.Config = function () {}
          }, function (e, t, n) {
            Object.defineProperty(t, "__esModule", {
              value: !0
            });
            var o = n(0),
              r = function () {
                function e(e, t, n, r) {
                  this.strategy = {
                    isEventUpOnOff: !0,
                    httpsUploadUrl: o.BEACON_HTTPS_URL,
                    requestInterval: 30,
                    blacklist: [],
                    samplelist: []
                  }, this.realSample = {}, this.appkey = "", this.appkey = e.appkey, this.storage = n;
                  try {
                    var i = JSON.parse(this.storage.getItem(o.BEACON_CONFIG));
                    i && this.processData(i)
                  } catch (a) {}
                  this.needRequestConfig() && this.requestConfig(e.appVersion, t, r)
                }
                return e.prototype.requestConfig = function (e, t, n) {
                  var r = this;
                  this.storage.setItem(o.BEACON_CONFIG_REQUEST_TIME, Date.now().toString()), n.post(o.BEACON_CONFIG_HTTPS_URL, {
                    platformId: void 0 === wx$1 ? "3" : "4",
                    mainAppKey: this.appkey,
                    appVersion: e,
                    sdkVersion: t.sdkVersion,
                    osVersion: t.userAgent,
                    model: "",
                    packageName: "",
                    params: {
                      A3: t.deviceId
                    }
                  }).then((function (e) {
                    if (0 == e.data.ret) try {
                      var t = JSON.parse(e.data.beaconConfig);
                      t && (r.processData(t), r.storage.setItem(o.BEACON_CONFIG, e.data.beaconConfig))
                    } catch (n) {} else r.processData(null), r.storage.setItem(o.BEACON_CONFIG, "")
                  })).catch((function (e) {}))
                }, e.prototype.processData = function (e) {
                  var t, n, o, r, i;
                  this.strategy.isEventUpOnOff = null !== (t = null == e ? void 0 : e.isEventUpOnOff) && void 0 !== t ? t : this.strategy.isEventUpOnOff, this.strategy.httpsUploadUrl = null !== (n = null == e ? void 0 : e.httpsUploadUrl) && void 0 !== n ? n : this.strategy.httpsUploadUrl, this.strategy.requestInterval = null !== (o = null == e ? void 0 : e.requestInterval) && void 0 !== o ? o : this.strategy.requestInterval, this.strategy.blacklist = null !== (r = null == e ? void 0 : e.blacklist) && void 0 !== r ? r : this.strategy.blacklist, this.strategy.samplelist = null !== (i = null == e ? void 0 : e.samplelist) && void 0 !== i ? i : this.strategy.samplelist;
                  for (var a = 0, s = this.strategy.samplelist; a < s.length; a++) {
                    var c = s[a].split(",");
                    2 == c.length && (this.realSample[c[0]] = c[1])
                  }
                }, e.prototype.needRequestConfig = function () {
                  var e = Number(this.storage.getItem(o.BEACON_CONFIG_REQUEST_TIME));
                  return Date.now() - e > 60 * this.strategy.requestInterval * 1e3
                }, e.prototype.getUploadUrl = function () {
                  return this.strategy.httpsUploadUrl + "?appkey=" + this.appkey
                }, e.prototype.isBlackEvent = function (e) {
                  return -1 != this.strategy.blacklist.indexOf(e)
                }, e.prototype.isEventUpOnOff = function () {
                  return this.strategy.isEventUpOnOff
                }, e.prototype.isSampleEvent = function (e) {
                  return !!Object.prototype.hasOwnProperty.call(this.realSample, e) && this.realSample[e] < Math.floor(Math.random() * Math.floor(1e4))
                }, e
              }();
            t.default = r
          }, function (e, t, n) {
            var o, r = this && this.__extends || (o = function (e, t) {
                return (o = Object.setPrototypeOf || {
                    __proto__: []
                  }
                  instanceof Array && function (e, t) {
                    e.__proto__ = t
                  } || function (e, t) {
                    for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                  })(e, t)
              }, function (e, t) {
                function n() {
                  this.constructor = e
                }
                o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
              }),
              i = this && this.__assign || function () {
                return (i = Object.assign || function (e) {
                  for (var t, n = 1, o = arguments.length; n < o; n++)
                    for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);
                  return e
                }).apply(this, arguments)
              },
              a = this && this.__importDefault || function (e) {
                return e && e.__esModule ? e : {
                  default: e
                }
              };
            Object.defineProperty(t, "__esModule", {
              value: !0
            }), t.WeappOpts = void 0;
            var s = a(n(7)),
              c = a(n(3)),
              l = n(0),
              u = n(1),
              d = n(4),
              p = a(n(5)),
              f = function (e) {
                function t() {
                  return null !== e && e.apply(this, arguments) || this
                }
                return r(t, e), t
              }(d.Config);
            t.WeappOpts = f;
            var h = wx$1 || qq,
              m = function (e) {
                function t(t) {
                  var n = e.call(this, t) || this;
                  return n.send = function (e, t, o) {
                    if (!n.config.appkey) throw new Error("please call init before");
                    n.network.post(n.strategy.getUploadUrl(), e.data).then((function (o) {
                      100 == o.data.result ? n.delayTime = 1e3 * o.data.delayTime : n.delayTime = 0, t && t(e.data), n.cleanEvents(e.data.events)
                    })).catch((function (t) {
                      var r = e.data.events;
                      n.errorReport.reportError(t.code ? t.code.toString() : "600", t.message), o && o(e.data), n.concatEvents(r)
                    }))
                  }, n.network = new g, n.storage = new y(t.appkey), n.initCommonInfo(t, n), n.errorReport = new c.default(n.config, n.commonInfo, "weapp", n.network), n.strategy = new p.default(n.config, n.commonInfo, n.storage, n.network), n.storage.setItem(l.BEACON_SENDING_IDS_KEY, JSON.stringify([])), n.onDirectUserAction("rqd_weapp_init", {}), setTimeout((function () {
                    return n.lifeCycle.emit("init")
                  }), 0), n.initDelayTime = t.delay ? t.delay : 2e3, n.cycleSend(n.initDelayTime), n
                }
                return r(t, e), t.prototype.initCommonInfo = function (e, t) {
                  h.getNetworkType({
                    success: function (e) {
                      t.storage.setItem("nt", e.networkType)
                    }
                  }), this.commonInfo = {
                    deviceId: this.storage.createDeviceId(),
                    language: "",
                    query: "",
                    userAgent: "",
                    pixel: "",
                    channelID: e.channelID ? String(e.channelID) : "",
                    openid: e.openid ? String(e.openid) : "",
                    unid: e.unionid ? String(e.unionid) : "",
                    sdkVersion: "4.2.6-weapp"
                  }, this.config.appVersion = e.versionCode ? String(e.versionCode) : "", this.config.strictMode = e.strictMode
                }, t.prototype.cycleSend = function (e) {
                  var t = this;
                  setTimeout((function () {
                    t.realSend(t.getEvents()), t.cycleSend(0 == t.delayTime ? t.initDelayTime : t.delayTime)
                  }), e)
                }, t.prototype.onReport = function (e, t, n) {
                  var o = [],
                    r = "4.2.6-weapp_" + (n ? l.BEACON_DRIECT_LOG_ID_KEY : l.BEACON_NORMAL_LOG_ID_KEY),
                    a = Number(this.storage.getItem(r));
                  a = a || 1, t = i(i({}, t), {
                    A99: n ? "Y" : "N",
                    A100: String(a),
                    A72: this.commonInfo.sdkVersion
                  }), a++, this.storage.setItem(r, String(a)), o.push({
                    eventCode: e,
                    eventTime: Date.now().toString(),
                    mapValue: u.replace(t, this.config.strictMode)
                  }), n && 0 == this.delayTime ? this.realSend(o) : this.concatEvents(o)
                }, t.prototype.realSend = function (e) {
                  var t, n;
                  if (0 != e.length) {
                    var o = this.getSystemInfo(),
                      r = {
                        appVersion: this.config.appVersion ? u.replaceSymbol(this.config.appVersion) : "",
                        sdkVersion: "4.2.6-weapp",
                        sdkId: "weapp",
                        mainAppKey: this.config.appkey,
                        platformId: 4,
                        common: u.replace(i(i({}, this.additionalParams), {
                          env: "undefined" == typeof qq ? "wechat" : "qq",
                          A2: this.commonInfo.deviceId,
                          A8: String(this.commonInfo.openid),
                          A9: this.getSystemInfo().brand,
                          A10: encodeURIComponent(o.model),
                          A12: o.language,
                          A23: this.commonInfo.channelID,
                          A33: this.getNetworkType(),
                          A50: String(this.commonInfo.unid),
                          A95: o.version,
                          A102: null === (n = null === (t = getCurrentPages()) || void 0 === t ? void 0 : t.pop()) || void 0 === n ? void 0 : n.route,
                          A114: encodeURIComponent(o.system),
                          A115: encodeURIComponent(o.platform),
                          A116: o.windowWidth + "*" + o.windowHeight + "*" + o.pixelRatio,
                          A117: this.getUserInfo(),
                          A118: this.getLocation()
                        }), !1),
                        events: e
                      };
                    this._normalLogPipeline(r)
                  }
                }, t.prototype.setUserInfo = function (e) {
                  this.storage.setItem("ui", JSON.stringify(e.userInfo))
                }, t.prototype.setLocation = function (e) {
                  this.storage.setItem("lt", JSON.stringify(e))
                }, t.prototype.getSystemInfo = function () {
                  return h.getSystemInfoSync()
                }, t.prototype.getNetworkType = function () {
                  return this.storage.getItem("nt")
                }, t.prototype.getUserInfo = function () {
                  return this.storage.getItem("ui")
                }, t.prototype.getLocation = function () {
                  return this.storage.getItem("lt")
                }, t.prototype.concatEvents = function (e) {
                  var t = this.getLocalEvents();
                  t = t || {};
                  for (var n = 0, o = e; n < o.length; n++) {
                    var r = o[n],
                      i = u.getEventId(r.mapValue);
                    this.removeSendingId(i), t[i] = r
                  }
                  this.setLocalEvents(t)
                }, t.prototype.getEvents = function () {
                  var e = [],
                    t = [],
                    n = this.getLocalEvents();
                  if (!n) return e;
                  try {
                    t = JSON.parse(this.storage.getItem(l.BEACON_SENDING_IDS_KEY))
                  } catch (s) {}
                  for (var o = 0, r = Object.getOwnPropertyNames(n); o < r.length; o++) {
                    var i = r[o],
                      a = n[i]; - 1 == t.indexOf(i) && (e.push(a), t.push(i))
                  }
                  return this.storage.setItem(l.BEACON_SENDING_IDS_KEY, JSON.stringify(t)), e
                }, t.prototype.cleanEvents = function (e) {
                  for (var t = this.getLocalEvents(), n = 0, o = e; n < o.length; n++) {
                    var r = o[n],
                      i = u.getEventId(r.mapValue);
                    this.removeSendingId(i), delete t[i]
                  }
                  this.setLocalEvents(t)
                }, t.prototype.setLocalEvents = function (e) {
                  try {
                    this.storage.setItem("BEACON_EVENT", JSON.stringify(e))
                  } catch (t) {}
                }, t.prototype.getLocalEvents = function () {
                  try {
                    return JSON.parse(this.storage.getItem("BEACON_EVENT"))
                  } catch (e) {
                    return {}
                  }
                }, t
              }(s.default);
            t.default = m;
            var g = function () {
                function e() {}
                return e.prototype.get = function (e, t) {
                  return new Promise((function (n, o) {
                    h.request({
                      method: "GET",
                      data: null == t ? void 0 : t.params,
                      url: e,
                      success: function (e) {
                        n(e)
                      },
                      fail: function (e) {
                        o(e)
                      }
                    })
                  }))
                }, e.prototype.post = function (e, t, n) {
                  var o = this;
                  return new Promise((function (r, i) {
                    h.request({
                      method: "POST",
                      url: e,
                      data: t,
                      success: function (e) {
                        var t = {
                          data: e.data,
                          status: e.statusCode,
                          statusText: "",
                          headers: e.header,
                          config: n,
                          request: o
                        };
                        r(t)
                      },
                      fail: function (e) {
                        var t = {
                          message: e.errMsg,
                          code: "600",
                          request: o
                        };
                        i(t)
                      }
                    })
                  }))
                }, e
              }(),
              y = function () {
                function e(e) {
                  this.appkey = e
                }
                return e.prototype.getItem = function (e) {
                  try {
                    return h.getStorageSync(this.getStoreKey(e))
                  } catch (t) {
                    return ""
                  }
                }, e.prototype.removeItem = function (e) {
                  try {
                    h.removeStorageSync(this.getStoreKey(e))
                  } catch (t) {}
                }, e.prototype.setItem = function (e, t) {
                  try {
                    h.setStorageSync(this.getStoreKey(e), t)
                  } catch (n) {}
                }, e.prototype.createDeviceId = function () {
                  var e = h.getStorageSync("beacon_u");
                  return e && "" != e || (e = this.getRandom(36), h.setStorageSync("beacon_u", e)), e
                }, e.prototype.getRandom = function (e) {
                  return (1e6 * Date.now() + Math.floor(1e6 * Math.random())).toString(e) || ""
                }, e.prototype.getStoreKey = function (e) {
                  return "beaconV2__" + this.appkey + "_" + e
                }, e
              }()
          }, function (e, t, n) {
            var o = this && this.__createBinding || (Object.create ? function (e, t, n, o) {
                void 0 === o && (o = n), Object.defineProperty(e, o, {
                  enumerable: !0,
                  get: function () {
                    return t[n]
                  }
                })
              } : function (e, t, n, o) {
                void 0 === o && (o = n), e[o] = t[n]
              }),
              r = this && this.__exportStar || function (e, t) {
                for (var n in e) "default" === n || t.hasOwnProperty(n) || o(t, e, n)
              },
              i = this && this.__importDefault || function (e) {
                return e && e.__esModule ? e : {
                  default: e
                }
              };
            Object.defineProperty(t, "__esModule", {
              value: !0
            });
            var a = i(n(8));
            t.default = a.default, r(n(10), t), r(n(2), t), r(n(11), t), r(n(1), t)
          }, function (e, t, n) {
            var o = this && this.__assign || function () {
              return (o = Object.assign || function (e) {
                for (var t, n = 1, o = arguments.length; n < o; n++)
                  for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]);
                return e
              }).apply(this, arguments)
            };
            Object.defineProperty(t, "__esModule", {
              value: !0
            });
            var r = n(1),
              i = n(2),
              a = n(1),
              s = n(0),
              c = function () {
                function e(e) {
                  var t = this;
                  this.lifeCycle = new r.EventEmiter, this.uploadJobQueue = [], this.additionalParams = {}, this.delayTime = 0, this._normalLogPipeline = i.createPipeline([function (e) {
                    t.send({
                      url: t.strategy.getUploadUrl(),
                      data: e,
                      method: "post",
                      contentType: "application/json;charset=UTF-8"
                    }, (function () {
                      var n = t.config.onReportSuccess;
                      "function" == typeof n && n(JSON.stringify(e.events))
                    }), (function () {
                      var n = t.config.onReportFail;
                      "function" == typeof n && n(JSON.stringify(e.events))
                    }))
                  }]), a.assert(Boolean(e.appkey), "appkey must be initial"), this.config = o({}, e)
                }
                return e.prototype.onUserAction = function (e, t) {
                  this.preReport(e, t, !1)
                }, e.prototype.onDirectUserAction = function (e, t) {
                  this.preReport(e, t, !0)
                }, e.prototype.preReport = function (e, t, n) {
                  e ? this.strategy.isEventUpOnOff() && (this.strategy.isBlackEvent(e) || this.strategy.isSampleEvent(e) || this.onReport(e, t, n)) : this.errorReport.reportError("602", " no eventCode")
                }, e.prototype.addAdditionalParams = function (e) {
                  for (var t = 0, n = Object.keys(e); t < n.length; t++) {
                    var o = n[t];
                    this.additionalParams[o] = e[o]
                  }
                }, e.prototype.setChannelId = function (e) {
                  this.commonInfo.channelID = String(e)
                }, e.prototype.setOpenId = function (e) {
                  this.commonInfo.openid = String(e)
                }, e.prototype.setUnionid = function (e) {
                  this.commonInfo.unid = String(e)
                }, e.prototype.getDeviceId = function () {
                  return this.commonInfo.deviceId
                }, e.prototype.getCommonInfo = function () {
                  return this.commonInfo
                }, e.prototype.removeSendingId = function (e) {
                  var t = JSON.parse(this.storage.getItem(s.BEACON_SENDING_IDS_KEY)),
                    n = t.indexOf(e); - 1 != n && (t.splice(n, 1), this.storage.setItem(s.BEACON_SENDING_IDS_KEY, JSON.stringify(t)))
                }, e
              }();
            t.default = c
          }, function (e, t, n) {
            Object.defineProperty(t, "__esModule", {
              value: !0
            }), t.EventEmiter = void 0;
            var o = function () {
              function e() {
                var e = this;
                this.emit = function (t, n) {
                  if (e) {
                    var o, r = e.__EventsList[t];
                    if (null == r ? void 0 : r.length) {
                      r = r.slice();
                      for (var i = 0; i < r.length; i++) {
                        o = r[i];
                        try {
                          var a = o.callback.apply(e, [n]);
                          if (1 === o.type && e.remove(t, o.callback), !1 === a) break
                        } catch (s) {
                          throw s
                        }
                      }
                    }
                    return e
                  }
                }, this.__EventsList = {}
              }
              return e.prototype.indexOf = function (e, t) {
                for (var n = 0; n < e.length; n++)
                  if (e[n].callback === t) return n;
                return -1
              }, e.prototype.on = function (e, t, n) {
                if (void 0 === n && (n = 0), this) {
                  var o = this.__EventsList[e];
                  if (o || (o = this.__EventsList[e] = []), -1 === this.indexOf(o, t)) {
                    var r = {
                      name: e,
                      type: n || 0,
                      callback: t
                    };
                    return o.push(r), this
                  }
                  return this
                }
              }, e.prototype.one = function (e, t) {
                this.on(e, t, 1)
              }, e.prototype.remove = function (e, t) {
                if (this) {
                  var n = this.__EventsList[e];
                  if (!n) return null;
                  if (!t) {
                    try {
                      delete this.__EventsList[e]
                    } catch (r) {}
                    return null
                  }
                  if (n.length) {
                    var o = this.indexOf(n, t);
                    n.splice(o, 1)
                  }
                  return this
                }
              }, e
            }();
            t.EventEmiter = o
          }, function (e, t, n) {
            Object.defineProperty(t, "__esModule", {
              value: !0
            })
          }, function (e, t, n) {
            var o = this && this.__createBinding || (Object.create ? function (e, t, n, o) {
                void 0 === o && (o = n), Object.defineProperty(e, o, {
                  enumerable: !0,
                  get: function () {
                    return t[n]
                  }
                })
              } : function (e, t, n, o) {
                void 0 === o && (o = n), e[o] = t[n]
              }),
              r = this && this.__exportStar || function (e, t) {
                for (var n in e) "default" === n || t.hasOwnProperty(n) || o(t, e, n)
              };
            Object.defineProperty(t, "__esModule", {
              value: !0
            }), r(n(3), t), r(n(4), t), r(n(5), t)
          }]).default
        }, "object" == a(t) && "object" == a(e) ? e.exports = i() : (o = [], void 0 === (r = "function" == typeof (n = i) ? n.apply(t, o) : n) || (e.exports = r))
      }).call(this, n(3)(e))
    }, function (e, t, n) {
      var o = n(9),
        r = n(0),
        i = {};
      e.exports.transferToTaskMethod = function (e, t) {
        i[t] = e[t], e[t] = function (e, n) {
          e.SkipTask ? i[t].call(this, e, n) : this._addTask(t, e, n)
        }
      }, e.exports.init = function (e) {
        var t, n, a = [],
          s = {},
          c = 0,
          l = 0,
          u = function (e) {
            var t = {
              id: e.id,
              Bucket: e.Bucket,
              Region: e.Region,
              Key: e.Key,
              FilePath: e.FilePath,
              state: e.state,
              loaded: e.loaded,
              size: e.size,
              speed: e.speed,
              percent: e.percent,
              hashPercent: e.hashPercent,
              error: e.error
            };
            return e.FilePath && (t.FilePath = e.FilePath), t
          },
          d = (n = function () {
            t = 0, e.emit("task-list-update", {
              list: r.map(a, u)
            }), e.emit("list-update", {
              list: r.map(a, u)
            })
          }, function () {
            t || (t = setTimeout(n))
          }),
          p = function () {
            if (!(a.length <= e.options.UploadQueueSize)) {
              for (var t = 0; t < l && t < a.length && a.length > e.options.UploadQueueSize;) {
                var n = "waiting" === a[t].state || "checking" === a[t].state || "uploading" === a[t].state;
                a[t] && n ? t++ : (s[a[t].id] && delete s[a[t].id], a.splice(t, 1), l--)
              }
              d()
            }
          },
          f = function t() {
            if (!(c >= e.options.FileParallelLimit)) {
              for (; a[l] && "waiting" !== a[l].state;) l++;
              if (!(l >= a.length)) {
                var n = a[l];
                l++, c++, n.state = "checking", n.params.onTaskStart && n.params.onTaskStart(u(n)), !n.params.UploadData && (n.params.UploadData = {});
                var o = r.formatParams(n.api, n.params);
                i[n.api].call(e, o, (function (o, r) {
                  e._isRunningTask(n.id) && ("checking" !== n.state && "uploading" !== n.state || (n.state = o ? "error" : "success", o && (n.error = o), c--, d(), t(), n.callback && n.callback(o, r), "success" === n.state && (n.params && (delete n.params.UploadData, delete n.params.Body, delete n.params), delete n.callback)), p())
                })), d(), setTimeout(t)
              }
            }
          },
          h = function (t, n) {
            var r = s[t];
            if (r) {
              var i = r && "waiting" === r.state,
                a = r && ("checking" === r.state || "uploading" === r.state);
              if ("canceled" === n && "canceled" !== r.state || "paused" === n && i || "paused" === n && a) {
                if ("paused" === n && r.params.Body && "function" == typeof r.params.Body.pipe) return;
                r.state = n, e.emit("inner-kill-task", {
                  TaskId: t,
                  toState: n
                });
                try {
                  var l = r && r.params && r.params.UploadData.UploadId
                } catch (u) {}
                "canceled" === n && l && o.removeUsing(l), d(), a && (c--, f()), "canceled" === n && (r.params && (delete r.params.UploadData, delete r.params.Body, delete r.params), delete r.callback)
              }
              p()
            }
          };
        e._addTasks = function (t) {
          r.each(t, (function (t) {
            e._addTask(t.api, t.params, t.callback, !0)
          })), d()
        }, e._addTask = function (t, n, o, i) {
          var c = "postObject" === e.options.SimpleUploadMethod ? "postObject" : "putObject";
          "sliceUploadFile" !== t || r.canFileSlice() || (t = c), n = r.formatParams(t, n);
          var l = r.uuid();
          n.TaskId = l, n.onTaskReady && n.onTaskReady(l);
          var u = {
              params: n,
              callback: o,
              api: t,
              index: a.length,
              id: l,
              Bucket: n.Bucket,
              Region: n.Region,
              Key: n.Key,
              FilePath: n.FilePath || "",
              state: "waiting",
              loaded: 0,
              size: 0,
              speed: 0,
              percent: 0,
              hashPercent: 0,
              error: null
            },
            h = n.onHashProgress;
          n.onHashProgress = function (t) {
            e._isRunningTask(u.id) && (u.hashPercent = t.percent, h && h(t), d())
          };
          var m = n.onProgress;
          return n.onProgress = function (t) {
            e._isRunningTask(u.id) && ("checking" === u.state && (u.state = "uploading"), u.loaded = t.loaded, u.size = t.total, u.speed = t.speed, u.percent = t.percent, m && m(t), d())
          }, r.getFileSize(t, n, (function (e, t) {
            e ? o(e) : (s[l] = u, a.push(u), u.size = t, !i && d(), f(), p())
          })), l
        }, e._isRunningTask = function (e) {
          var t = s[e];
          return !(!t || "checking" !== t.state && "uploading" !== t.state)
        }, e.getTaskList = function () {
          return r.map(a, u)
        }, e.cancelTask = function (e) {
          h(e, "canceled")
        }, e.pauseTask = function (e) {
          h(e, "paused")
        }, e.restartTask = function (e) {
          var t = s[e];
          !t || "paused" !== t.state && "error" !== t.state || (t.state = "waiting", d(), l = Math.min(l, t.index), f())
        }, e.isUploadRunning = function () {
          return c || l < a.length
        }
      }
    }, function (e, t, n) {
      var o = n(25),
        r = (n(5), n(0)),
        i = n(26);

      function a(e) {
        var t = {
            GrantFullControl: [],
            GrantWrite: [],
            GrantRead: [],
            GrantReadAcp: [],
            GrantWriteAcp: [],
            ACL: ""
          },
          n = {
            FULL_CONTROL: "GrantFullControl",
            WRITE: "GrantWrite",
            READ: "GrantRead",
            READ_ACP: "GrantReadAcp",
            WRITE_ACP: "GrantWriteAcp"
          },
          o = (e && e.AccessControlList || {}).Grant;
        o && (o = r.isArray(o) ? o : [o]);
        var i = {
          READ: 0,
          WRITE: 0,
          FULL_CONTROL: 0
        };
        return o && o.length && r.each(o, (function (o) {
          "qcs::cam::anyone:anyone" === o.Grantee.ID || "http://cam.qcloud.com/groups/global/AllUsers" === o.Grantee.URI ? i[o.Permission] = 1 : o.Grantee.ID !== e.Owner.ID && t[n[o.Permission]].push('id="' + o.Grantee.ID + '"')
        })), i.FULL_CONTROL || i.WRITE && i.READ ? t.ACL = "public-read-write" : i.READ ? t.ACL = "public-read" : t.ACL = "private", r.each(n, (function (e) {
          t[e] = s(t[e].join(","))
        })), t
      }

      function s(e) {
        var t, n, o = e.split(","),
          r = {};
        for (t = 0; t < o.length;) r[n = o[t].trim()] ? o.splice(t, 1) : (r[n] = !0, o[t] = n, t++);
        return o.join(",")
      }

      function c(e) {
        var t = e.bucket,
          n = t.substr(0, t.lastIndexOf("-")),
          o = t.substr(t.lastIndexOf("-") + 1),
          i = e.domain,
          a = e.region,
          s = e.object;
        i || (i = ["cn-south", "cn-south-2", "cn-north", "cn-east", "cn-southwest", "sg"].indexOf(a) > -1 ? "{Region}.myqcloud.com" : "cos.{Region}.myqcloud.com", e.ForcePathStyle || (i = "{Bucket}." + i)), i = (i = i.replace(/\{\{AppId\}\}/gi, o).replace(/\{\{Bucket\}\}/gi, n).replace(/\{\{Region\}\}/gi, a).replace(/\{\{.*?\}\}/gi, "")).replace(/\{AppId\}/gi, o).replace(/\{BucketName\}/gi, n).replace(/\{Bucket\}/gi, t).replace(/\{Region\}/gi, a).replace(/\{.*?\}/gi, ""), /^[a-zA-Z]+:\/\//.test(i) || (i = "https://" + i), "/" === i.slice(-1) && (i = i.slice(0, -1));
        var c = i;
        return e.ForcePathStyle && (c += "/" + t), c += "/", s && (c += r.camSafeUrlEncode(s).replace(/%2F/g, "/")), e.isLocation && (c = c.replace(/^https?:\/\//, "")), c
      }
      var l = function (e) {
        if (!e.Bucket || !e.Region) return "";
        var t = void 0 === e.UseAccelerate ? this.options.UseAccelerate : e.UseAccelerate,
          n = (e.Url || c({
            ForcePathStyle: this.options.ForcePathStyle,
            protocol: this.options.Protocol,
            domain: this.options.Domain,
            bucket: e.Bucket,
            region: t ? "accelerate" : e.Region
          })).replace(/^https?:\/\/([^/]+)(\/.*)?$/, "$1");
        return new RegExp("^([a-z\\d-]+-\\d+\\.)?(cos|cosv6|ci|pic)\\.([a-z\\d-]+)\\.myqcloud\\.com$").test(n) ? n : ""
      };

      function u(e, t) {
        var n = r.clone(e.Headers),
          o = "";
        r.each(n, (function (e, t) {
          ("" === e || ["content-type", "cache-control"].indexOf(t.toLowerCase()) > -1) && delete n[t], "host" === t.toLowerCase() && (o = e)
        }));
        var i = !1 !== e.ForceSignHost;
        !o && e.SignHost && i && (n.Host = e.SignHost);
        var a = !1,
          s = function (e, n) {
            a || (a = !0, n && n.XCosSecurityToken && !n.SecurityToken && ((n = r.clone(n)).SecurityToken = n.XCosSecurityToken, delete n.XCosSecurityToken), t && t(e, n))
          },
          c = this,
          l = e.Bucket || "",
          u = e.Region || "",
          d = "name/cos:PostObject" !== e.Action && e.Key ? e.Key : "";
        c.options.ForcePathStyle && l && (d = l + "/" + d);
        var p = "/" + d,
          f = {},
          h = e.Scope;
        if (!h) {
          var m = e.Action || "",
            g = e.ResourceKey || e.Key || "";
          h = e.Scope || [{
            action: m,
            bucket: l,
            region: u,
            prefix: g
          }]
        }
        var y = r.md5(JSON.stringify(h));
        c._StsCache = c._StsCache || [],
          function () {
            var e, t;
            for (e = c._StsCache.length - 1; e >= 0; e--) {
              t = c._StsCache[e];
              var n = Math.round(r.getSkewTime(c.options.SystemClockOffset) / 1e3) + 30;
              if (t.StartTime && n < t.StartTime || n >= t.ExpiredTime) c._StsCache.splice(e, 1);
              else if (!t.ScopeLimit || t.ScopeLimit && t.ScopeKey === y) {
                f = t;
                break
              }
            }
          }();
        var v, _ = function () {
            var t = "";
            f.StartTime && e.Expires ? t = f.StartTime + ";" + (f.StartTime + 1 * e.Expires) : f.StartTime && f.ExpiredTime && (t = f.StartTime + ";" + f.ExpiredTime);
            var o = {
              Authorization: r.getAuth({
                SecretId: f.TmpSecretId,
                SecretKey: f.TmpSecretKey,
                Method: e.Method,
                Pathname: p,
                Query: e.Query,
                Headers: n,
                Expires: e.Expires,
                SystemClockOffset: c.options.SystemClockOffset,
                KeyTime: t,
                ForceSignHost: i
              }),
              SecurityToken: f.SecurityToken || f.XCosSecurityToken || "",
              Token: f.Token || "",
              ClientIP: f.ClientIP || "",
              ClientUA: f.ClientUA || ""
            };
            s(null, o)
          },
          x = function (e) {
            if (e.Authorization) {
              var t = !1,
                n = e.Authorization;
              if (n)
                if (n.indexOf(" ") > -1) t = !1;
                else if (n.indexOf("q-sign-algorithm=") > -1 && n.indexOf("q-ak=") > -1 && n.indexOf("q-sign-time=") > -1 && n.indexOf("q-key-time=") > -1 && n.indexOf("q-url-param-list=") > -1) t = !0;
              else try {
                (n = atob(n)).indexOf("a=") > -1 && n.indexOf("k=") > -1 && n.indexOf("t=") > -1 && n.indexOf("r=") > -1 && n.indexOf("b=") > -1 && (t = !0)
              } catch (o) {}
              if (!t) return r.error(new Error("getAuthorization callback params format error"))
            } else {
              if (!e.TmpSecretId) return r.error(new Error('getAuthorization callback params missing "TmpSecretId"'));
              if (!e.TmpSecretKey) return r.error(new Error('getAuthorization callback params missing "TmpSecretKey"'));
              if (!e.SecurityToken && !e.XCosSecurityToken) return r.error(new Error('getAuthorization callback params missing "SecurityToken"'));
              if (!e.ExpiredTime) return r.error(new Error('getAuthorization callback params missing "ExpiredTime"'));
              if (e.ExpiredTime && 10 !== e.ExpiredTime.toString().length) return r.error(new Error('getAuthorization callback params "ExpiredTime" should be 10 digits'));
              if (e.StartTime && 10 !== e.StartTime.toString().length) return r.error(new Error('getAuthorization callback params "StartTime" should be 10 StartTime'))
            }
            return !1
          };
        if (f.ExpiredTime && f.ExpiredTime - r.getSkewTime(c.options.SystemClockOffset) / 1e3 > 60) _();
        else if (c.options.getAuthorization) c.options.getAuthorization.call(c, {
          Bucket: l,
          Region: u,
          Method: e.Method,
          Key: d,
          Pathname: p,
          Query: e.Query,
          Headers: n,
          Scope: h,
          SystemClockOffset: c.options.SystemClockOffset,
          ForceSignHost: i
        }, (function (e) {
          "string" == typeof e && (e = {
            Authorization: e
          });
          var t = x(e);
          if (t) return s(t);
          e.Authorization ? s(null, e) : ((f = e || {}).Scope = h, f.ScopeKey = y, c._StsCache.push(f), _())
        }));
        else {
          if (!c.options.getSTS) return v = {
            Authorization: r.getAuth({
              SecretId: e.SecretId || c.options.SecretId,
              SecretKey: e.SecretKey || c.options.SecretKey,
              Method: e.Method,
              Pathname: p,
              Query: e.Query,
              Headers: n,
              Expires: e.Expires,
              SystemClockOffset: c.options.SystemClockOffset,
              ForceSignHost: i
            }),
            SecurityToken: c.options.SecurityToken || c.options.XCosSecurityToken
          }, s(null, v), v;
          c.options.getSTS.call(c, {
            Bucket: l,
            Region: u
          }, (function (e) {
            (f = e || {}).Scope = h, f.ScopeKey = y, f.TmpSecretId || (f.TmpSecretId = f.SecretId), f.TmpSecretKey || (f.TmpSecretKey = f.SecretKey);
            var t = x(f);
            if (t) return s(t);
            c._StsCache.push(f), _()
          }))
        }
        return ""
      }

      function d(e) {
        var t = !1,
          n = !1,
          o = e.headers && (e.headers.date || e.headers.Date) || e.error && e.error.ServerTime;
        try {
          var i = e.error.Code,
            a = e.error.Message;
          ("RequestTimeTooSkewed" === i || "AccessDenied" === i && "Request has expired" === a) && (n = !0)
        } catch (c) {}
        if (e)
          if (n && o) {
            var s = Date.parse(o);
            this.options.CorrectClockSkew && Math.abs(r.getSkewTime(this.options.SystemClockOffset) - s) >= 3e4 && (this.options.SystemClockOffset = s - Date.now(), t = !0)
          } else 5 === Math.floor(e.statusCode / 100) && (t = !0);
        return t
      }

      function p(e, t) {
        var n = this;
        !e.headers && (e.headers = {}), !e.qs && (e.qs = {}), e.VersionId && (e.qs.versionId = e.VersionId), e.qs = r.clearKey(e.qs), e.headers && (e.headers = r.clearKey(e.headers)), e.qs && (e.qs = r.clearKey(e.qs));
        var o = r.clone(e.qs);
        e.action && (o[e.action] = "");
        var i = e.url || e.Url,
          a = e.SignHost || l.call(this, {
            Bucket: e.Bucket,
            Region: e.Region,
            Url: i
          }),
          s = e.tracker;
        ! function r(i) {
          var c = n.options.SystemClockOffset;
          s && s.setParams({
            signStartTime: (new Date).getTime(),
            retryTimes: i - 1
          }), u.call(n, {
            Bucket: e.Bucket || "",
            Region: e.Region || "",
            Method: e.method,
            Key: e.Key,
            Query: o,
            Headers: e.headers,
            SignHost: a,
            Action: e.Action,
            ResourceKey: e.ResourceKey,
            Scope: e.Scope,
            ForceSignHost: n.options.ForceSignHost
          }, (function (o, a) {
            o ? t(o) : (s && s.setParams({
              signEndTime: (new Date).getTime(),
              httpStartTime: (new Date).getTime()
            }), e.AuthData = a, f.call(n, e, (function (o, a) {
              s && s.setParams({
                httpEndTime: (new Date).getTime()
              }), o && i < 2 && (c !== n.options.SystemClockOffset || d.call(n, o)) ? (e.headers && (delete e.headers.Authorization, delete e.headers.token, delete e.headers.clientIP, delete e.headers.clientUA, e.headers["x-cos-security-token"] && delete e.headers["x-cos-security-token"], e.headers["x-ci-security-token"] && delete e.headers["x-ci-security-token"]), r(i + 1)) : t(o, a)
            })))
          }))
        }(1)
      }

      function f(e, t) {
        var n = this,
          i = e.TaskId;
        if (!i || n._isRunningTask(i)) {
          var a = e.Bucket,
            s = e.Region,
            l = e.Key,
            u = e.method || "GET",
            d = e.url || e.Url,
            p = e.body,
            f = e.json,
            h = e.rawBody,
            m = n.options.HttpDNSServiceId;
          n.options.UseAccelerate && (s = "accelerate"), d = d || c({
            ForcePathStyle: n.options.ForcePathStyle,
            protocol: n.options.Protocol,
            domain: n.options.Domain,
            bucket: a,
            region: s,
            object: l
          }), e.action && (d = d + "?" + e.action), e.qsStr && (d = d.indexOf("?") > -1 ? d + "&" + e.qsStr : d + "?" + e.qsStr);
          var g = {
              method: u,
              url: d,
              headers: e.headers,
              qs: e.qs,
              filePath: e.filePath,
              body: p,
              json: f,
              httpDNSServiceId: m
            },
            y = "x-cos-security-token";
          r.isCIHost(d) && (y = "x-ci-security-token"), g.headers.Authorization = e.AuthData.Authorization, e.AuthData.Token && (g.headers.token = e.AuthData.Token), e.AuthData.ClientIP && (g.headers.clientIP = e.AuthData.ClientIP), e.AuthData.ClientUA && (g.headers.clientUA = e.AuthData.ClientUA), e.AuthData.SecurityToken && (g.headers[y] = e.AuthData.SecurityToken), g.headers && (g.headers = r.clearKey(g.headers)), g = r.clearKey(g), e.onProgress && "function" == typeof e.onProgress && (g.onProgress = function (t) {
            if (!i || n._isRunningTask(i)) {
              var o = t ? t.loaded : 0;
              e.onProgress({
                loaded: o,
                total: t.total
              })
            }
          }), this.options.Timeout && (g.timeout = this.options.Timeout), n.options.ForcePathStyle && (g.pathStyle = n.options.ForcePathStyle), n.emit("before-send", g);
          var v = g.url.includes("accelerate."),
            _ = g.qs ? Object.keys(g.qs).map((function (e) {
              return "".concat(e, "=").concat(g.qs[e])
            })).join("&") : "",
            x = _ ? g.url + "?" + _ : g.url;
          e.tracker && e.tracker.setParams({
            reqUrl: x,
            accelerate: v ? "Y" : "N"
          }), e.tracker && e.tracker.parent && e.tracker.parent.setParams({
            reqUrl: x,
            accelerate: v ? "Y" : "N"
          });
          var k = o(g, (function (e, o, a) {
              if ("abort" !== e) {
                var s, c = function (e, a) {
                  if (i && n.off("inner-kill-task", b), !s) {
                    s = !0;
                    var c = {};
                    o && o.statusCode && (c.statusCode = o.statusCode), o && o.headers && (c.headers = o.headers), e ? (e = r.extend(e || {}, c), t(e, null)) : (a = r.extend(a || {}, c), t(null, a)), k = null
                  }
                };
                if (e) c({
                  error: e
                });
                else {
                  var l;
                  if (h)(l = {}).body = a;
                  else try {
                    l = a && a.indexOf("<") > -1 && a.indexOf(">") > -1 && r.xml2json(a) || {}
                  } catch (d) {
                    l = a || {}
                  }
                  var u = o.statusCode;
                  2 === Math.floor(u / 100) ? l.Error ? c({
                    error: l.Error
                  }) : c(null, l) : c({
                    error: l.Error || l
                  })
                }
              }
            })),
            b = function e(t) {
              t.TaskId === i && (k && k.abort && k.abort(), n.off("inner-kill-task", e))
            };
          i && n.on("inner-kill-task", b)
        }
      }
      var h = {
        getService: function (e, t) {
          "function" == typeof e && (t = e, e = {});
          var n = this.options.ServiceDomain,
            o = e.Region;
          n ? (n = n.replace(/\{\{Region\}\}/gi, o || "").replace(/\{\{.*?\}\}/gi, ""), /^[a-zA-Z]+:\/\//.test(n) || (n = "https://" + n), "/" === n.slice(-1) && (n = n.slice(0, -1))) : n = o ? "https://cos." + o + ".myqcloud.com" : "https://service.cos.myqcloud.com", n.replace(/^https?:\/\/([^/]+)(\/.*)?$/, "$1"), p.call(this, {
            Action: "name/cos:GetService",
            url: n,
            method: "GET",
            headers: e.Headers
          }, (function (e, n) {
            if (e) return t(e);
            var o = n && n.ListAllMyBucketsResult && n.ListAllMyBucketsResult.Buckets && n.ListAllMyBucketsResult.Buckets.Bucket || [];
            o = r.isArray(o) ? o : [o];
            var i = n && n.ListAllMyBucketsResult && n.ListAllMyBucketsResult.Owner || {};
            t(null, {
              Buckets: o,
              Owner: i,
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucket: function (e, t) {
          var n = this,
            o = "";
          if (e.BucketAZConfig) {
            var i = {
              BucketAZConfig: e.BucketAZConfig
            };
            o = r.json2xml({
              CreateBucketConfiguration: i
            })
          }
          p.call(this, {
            Action: "name/cos:PutBucket",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            body: o
          }, (function (o, r) {
            if (o) return t(o);
            var i = c({
              protocol: n.options.Protocol,
              domain: n.options.Domain,
              bucket: e.Bucket,
              region: e.Region,
              isLocation: !0
            });
            t(null, {
              Location: i,
              statusCode: r.statusCode,
              headers: r.headers
            })
          }))
        },
        headBucket: function (e, t) {
          p.call(this, {
            Action: "name/cos:HeadBucket",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            method: "HEAD"
          }, (function (e, n) {
            t(e, n)
          }))
        },
        getBucket: function (e, t) {
          var n = {};
          n.prefix = e.Prefix || "", n.delimiter = e.Delimiter, n.marker = e.Marker, n["max-keys"] = e.MaxKeys, n["encoding-type"] = e.EncodingType, p.call(this, {
            Action: "name/cos:GetBucket",
            ResourceKey: n.prefix,
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            qs: n
          }, (function (e, n) {
            if (e) return t(e);
            var o = n.ListBucketResult || {},
              i = o.Contents || [],
              a = o.CommonPrefixes || [];
            i = r.isArray(i) ? i : [i], a = r.isArray(a) ? a : [a];
            var s = r.clone(o);
            r.extend(s, {
              Contents: i,
              CommonPrefixes: a,
              statusCode: n.statusCode,
              headers: n.headers
            }), t(null, s)
          }))
        },
        deleteBucket: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteBucket",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            method: "DELETE"
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketAcl: function (e, t) {
          var n = e.Headers,
            o = "";
          if (e.AccessControlPolicy) {
            var i = r.clone(e.AccessControlPolicy || {}),
              a = i.Grants || i.Grant;
            a = r.isArray(a) ? a : [a], delete i.Grant, delete i.Grants, i.AccessControlList = {
              Grant: a
            }, o = r.json2xml({
              AccessControlPolicy: i
            }), n["Content-Type"] = "application/xml", n["Content-MD5"] = r.binaryBase64(r.md5(o))
          }
          r.each(n, (function (e, t) {
            0 === t.indexOf("x-cos-grant-") && (n[t] = s(n[t]))
          })), p.call(this, {
            Action: "name/cos:PutBucketACL",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: n,
            action: "acl",
            body: o
          }, (function (e, n) {
            if (e) return t(e);
            t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getBucketAcl: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketACL",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "acl"
          }, (function (e, n) {
            if (e) return t(e);
            var o = n.AccessControlPolicy || {},
              i = o.Owner || {},
              s = o.AccessControlList.Grant || [];
            s = r.isArray(s) ? s : [s];
            var c = a(o);
            n.headers && n.headers["x-cos-acl"] && (c.ACL = n.headers["x-cos-acl"]), c = r.extend(c, {
              Owner: i,
              Grants: s,
              statusCode: n.statusCode,
              headers: n.headers
            }), t(null, c)
          }))
        },
        putBucketCors: function (e, t) {
          var n = (e.CORSConfiguration || {}).CORSRules || e.CORSRules || [];
          n = r.clone(r.isArray(n) ? n : [n]), r.each(n, (function (e) {
            r.each(["AllowedOrigin", "AllowedHeader", "AllowedMethod", "ExposeHeader"], (function (t) {
              var n = t + "s",
                o = e[n] || e[t] || [];
              delete e[n], e[t] = r.isArray(o) ? o : [o]
            }))
          }));
          var o = {
            CORSRule: n
          };
          e.ResponseVary && (o.ResponseVary = e.ResponseVary);
          var i = r.json2xml({
              CORSConfiguration: o
            }),
            a = e.Headers;
          a["Content-Type"] = "application/xml", a["Content-MD5"] = r.binaryBase64(r.md5(i)), p.call(this, {
            Action: "name/cos:PutBucketCORS",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            body: i,
            action: "cors",
            headers: a
          }, (function (e, n) {
            if (e) return t(e);
            t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getBucketCors: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketCORS",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "cors"
          }, (function (e, n) {
            if (e)
              if (404 === e.statusCode && e.error && "NoSuchCORSConfiguration" === e.error.Code) {
                var o = {
                  CORSRules: [],
                  statusCode: e.statusCode
                };
                e.headers && (o.headers = e.headers), t(null, o)
              } else t(e);
            else {
              var i = n.CORSConfiguration || {},
                a = i.CORSRules || i.CORSRule || [];
              a = r.clone(r.isArray(a) ? a : [a]);
              var s = i.ResponseVary;
              r.each(a, (function (e) {
                r.each(["AllowedOrigin", "AllowedHeader", "AllowedMethod", "ExposeHeader"], (function (t) {
                  var n = t + "s",
                    o = e[n] || e[t] || [];
                  delete e[t], e[n] = r.isArray(o) ? o : [o]
                }))
              })), t(null, {
                CORSRules: a,
                ResponseVary: s,
                statusCode: n.statusCode,
                headers: n.headers
              })
            }
          }))
        },
        deleteBucketCors: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteBucketCORS",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "cors"
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode || e.statusCode,
              headers: n.headers
            })
          }))
        },
        getBucketLocation: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketLocation",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "location"
          }, (function (e, n) {
            if (e) return t(e);
            t(null, n)
          }))
        },
        getBucketPolicy: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketPolicy",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "policy",
            rawBody: !0
          }, (function (e, n) {
            if (e) return e.statusCode && 403 === e.statusCode ? t({
              ErrorStatus: "Access Denied"
            }) : e.statusCode && 405 === e.statusCode ? t({
              ErrorStatus: "Method Not Allowed"
            }) : e.statusCode && 404 === e.statusCode ? t({
              ErrorStatus: "Policy Not Found"
            }) : t(e);
            var o = {};
            try {
              o = JSON.parse(n.body)
            } catch (r) {}
            t(null, {
              Policy: o,
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketPolicy: function (e, t) {
          var n = e.Policy,
            o = n;
          try {
            "string" == typeof n ? n = JSON.parse(o) : o = JSON.stringify(n)
          } catch (a) {
            t({
              error: "Policy format error"
            })
          }
          var i = e.Headers;
          i["Content-Type"] = "application/json", i["Content-MD5"] = r.binaryBase64(r.md5(o)), p.call(this, {
            Action: "name/cos:PutBucketPolicy",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            action: "policy",
            body: o,
            headers: i,
            json: !0
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        deleteBucketPolicy: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteBucketPolicy",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "policy"
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode || e.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketTagging: function (e, t) {
          var n = e.Tagging || {},
            o = n.TagSet || n.Tags || e.Tags || [];
          o = r.clone(r.isArray(o) ? o : [o]);
          var i = r.json2xml({
              Tagging: {
                TagSet: {
                  Tag: o
                }
              }
            }),
            a = e.Headers;
          a["Content-Type"] = "application/xml", a["Content-MD5"] = r.binaryBase64(r.md5(i)), p.call(this, {
            Action: "name/cos:PutBucketTagging",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            body: i,
            action: "tagging",
            headers: a
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getBucketTagging: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketTagging",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "tagging"
          }, (function (e, n) {
            if (e)
              if (404 !== e.statusCode || !e.error || "Not Found" !== e.error && "NoSuchTagSet" !== e.error.Code) t(e);
              else {
                var o = {
                  Tags: [],
                  statusCode: e.statusCode
                };
                e.headers && (o.headers = e.headers), t(null, o)
              }
            else {
              var i = [];
              try {
                i = n.Tagging.TagSet.Tag || []
              } catch (a) {}
              i = r.clone(r.isArray(i) ? i : [i]), t(null, {
                Tags: i,
                statusCode: n.statusCode,
                headers: n.headers
              })
            }
          }))
        },
        deleteBucketTagging: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteBucketTagging",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "tagging"
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketLifecycle: function (e, t) {
          var n = (e.LifecycleConfiguration || {}).Rules || e.Rules || [];
          n = r.clone(n);
          var o = r.json2xml({
              LifecycleConfiguration: {
                Rule: n
              }
            }),
            i = e.Headers;
          i["Content-Type"] = "application/xml", i["Content-MD5"] = r.binaryBase64(r.md5(o)), p.call(this, {
            Action: "name/cos:PutBucketLifecycle",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            body: o,
            action: "lifecycle",
            headers: i
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getBucketLifecycle: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketLifecycle",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "lifecycle"
          }, (function (e, n) {
            if (e)
              if (404 === e.statusCode && e.error && "NoSuchLifecycleConfiguration" === e.error.Code) {
                var o = {
                  Rules: [],
                  statusCode: e.statusCode
                };
                e.headers && (o.headers = e.headers), t(null, o)
              } else t(e);
            else {
              var i = [];
              try {
                i = n.LifecycleConfiguration.Rule || []
              } catch (a) {}
              i = r.clone(r.isArray(i) ? i : [i]), t(null, {
                Rules: i,
                statusCode: n.statusCode,
                headers: n.headers
              })
            }
          }))
        },
        deleteBucketLifecycle: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteBucketLifecycle",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "lifecycle"
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketVersioning: function (e, t) {
          if (e.VersioningConfiguration) {
            var n = e.VersioningConfiguration || {},
              o = r.json2xml({
                VersioningConfiguration: n
              }),
              i = e.Headers;
            i["Content-Type"] = "application/xml", i["Content-MD5"] = r.binaryBase64(r.md5(o)), p.call(this, {
              Action: "name/cos:PutBucketVersioning",
              method: "PUT",
              Bucket: e.Bucket,
              Region: e.Region,
              body: o,
              action: "versioning",
              headers: i
            }, (function (e, n) {
              return e && 204 === e.statusCode ? t(null, {
                statusCode: e.statusCode
              }) : e ? t(e) : void t(null, {
                statusCode: n.statusCode,
                headers: n.headers
              })
            }))
          } else t({
            error: "missing param VersioningConfiguration"
          })
        },
        getBucketVersioning: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketVersioning",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "versioning"
          }, (function (e, n) {
            e || !n.VersioningConfiguration && (n.VersioningConfiguration = {}), t(e, n)
          }))
        },
        putBucketReplication: function (e, t) {
          var n = r.clone(e.ReplicationConfiguration),
            o = r.json2xml({
              ReplicationConfiguration: n
            });
          o = (o = o.replace(/<(\/?)Rules>/gi, "<$1Rule>")).replace(/<(\/?)Tags>/gi, "<$1Tag>");
          var i = e.Headers;
          i["Content-Type"] = "application/xml", i["Content-MD5"] = r.binaryBase64(r.md5(o)), p.call(this, {
            Action: "name/cos:PutBucketReplication",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            body: o,
            action: "replication",
            headers: i
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getBucketReplication: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketReplication",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "replication"
          }, (function (e, n) {
            if (e)
              if (404 !== e.statusCode || !e.error || "Not Found" !== e.error && "ReplicationConfigurationnotFoundError" !== e.error.Code) t(e);
              else {
                var o = {
                  ReplicationConfiguration: {
                    Rules: []
                  },
                  statusCode: e.statusCode
                };
                e.headers && (o.headers = e.headers), t(null, o)
              }
            else e || !n.ReplicationConfiguration && (n.ReplicationConfiguration = {}), n.ReplicationConfiguration.Rule && (n.ReplicationConfiguration.Rules = n.ReplicationConfiguration.Rule, delete n.ReplicationConfiguration.Rule), t(e, n)
          }))
        },
        deleteBucketReplication: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteBucketReplication",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "replication"
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketWebsite: function (e, t) {
          if (e.WebsiteConfiguration) {
            var n = r.clone(e.WebsiteConfiguration || {}),
              o = n.RoutingRules || n.RoutingRule || [];
            o = r.isArray(o) ? o : [o], delete n.RoutingRule, delete n.RoutingRules, o.length && (n.RoutingRules = {
              RoutingRule: o
            });
            var i = r.json2xml({
                WebsiteConfiguration: n
              }),
              a = e.Headers;
            a["Content-Type"] = "application/xml", a["Content-MD5"] = r.binaryBase64(r.md5(i)), p.call(this, {
              Action: "name/cos:PutBucketWebsite",
              method: "PUT",
              Bucket: e.Bucket,
              Region: e.Region,
              body: i,
              action: "website",
              headers: a
            }, (function (e, n) {
              return e && 204 === e.statusCode ? t(null, {
                statusCode: e.statusCode
              }) : e ? t(e) : void t(null, {
                statusCode: n.statusCode,
                headers: n.headers
              })
            }))
          } else t({
            error: "missing param WebsiteConfiguration"
          })
        },
        getBucketWebsite: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketWebsite",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            headers: e.Headers,
            action: "website"
          }, (function (e, n) {
            if (e)
              if (404 === e.statusCode && "NoSuchWebsiteConfiguration" === e.error.Code) {
                var o = {
                  WebsiteConfiguration: {},
                  statusCode: e.statusCode
                };
                e.headers && (o.headers = e.headers), t(null, o)
              } else t(e);
            else {
              var i = n.WebsiteConfiguration || {};
              if (i.RoutingRules) {
                var a = r.clone(i.RoutingRules.RoutingRule || []);
                a = r.makeArray(a), i.RoutingRules = a
              }
              t(null, {
                WebsiteConfiguration: i,
                statusCode: n.statusCode,
                headers: n.headers
              })
            }
          }))
        },
        deleteBucketWebsite: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteBucketWebsite",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "website"
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketReferer: function (e, t) {
          if (e.RefererConfiguration) {
            var n = r.clone(e.RefererConfiguration || {}),
              o = n.DomainList || {},
              i = o.Domains || o.Domain || [];
            (i = r.isArray(i) ? i : [i]).length && (n.DomainList = {
              Domain: i
            });
            var a = r.json2xml({
                RefererConfiguration: n
              }),
              s = e.Headers;
            s["Content-Type"] = "application/xml", s["Content-MD5"] = r.binaryBase64(r.md5(a)), p.call(this, {
              Action: "name/cos:PutBucketReferer",
              method: "PUT",
              Bucket: e.Bucket,
              Region: e.Region,
              body: a,
              action: "referer",
              headers: s
            }, (function (e, n) {
              return e && 204 === e.statusCode ? t(null, {
                statusCode: e.statusCode
              }) : e ? t(e) : void t(null, {
                statusCode: n.statusCode,
                headers: n.headers
              })
            }))
          } else t({
            error: "missing param RefererConfiguration"
          })
        },
        getBucketReferer: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketReferer",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            headers: e.Headers,
            action: "referer"
          }, (function (e, n) {
            if (e)
              if (404 === e.statusCode && "NoSuchRefererConfiguration" === e.error.Code) {
                var o = {
                  WebsiteConfiguration: {},
                  statusCode: e.statusCode
                };
                e.headers && (o.headers = e.headers), t(null, o)
              } else t(e);
            else {
              var i = n.RefererConfiguration || {};
              if (i.DomainList) {
                var a = r.makeArray(i.DomainList.Domain || []);
                i.DomainList = {
                  Domains: a
                }
              }
              t(null, {
                RefererConfiguration: i,
                statusCode: n.statusCode,
                headers: n.headers
              })
            }
          }))
        },
        putBucketDomain: function (e, t) {
          var n = (e.DomainConfiguration || {}).DomainRule || e.DomainRule || [];
          n = r.clone(n);
          var o = r.json2xml({
              DomainConfiguration: {
                DomainRule: n
              }
            }),
            i = e.Headers;
          i["Content-Type"] = "application/xml", i["Content-MD5"] = r.binaryBase64(r.md5(o)), p.call(this, {
            Action: "name/cos:PutBucketDomain",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            body: o,
            action: "domain",
            headers: i
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getBucketDomain: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketDomain",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "domain"
          }, (function (e, n) {
            if (e) return t(e);
            var o = [];
            try {
              o = n.DomainConfiguration.DomainRule || []
            } catch (i) {}
            o = r.clone(r.isArray(o) ? o : [o]), t(null, {
              DomainRule: o,
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        deleteBucketDomain: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteBucketDomain",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "domain"
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketOrigin: function (e, t) {
          var n = (e.OriginConfiguration || {}).OriginRule || e.OriginRule || [];
          n = r.clone(n);
          var o = r.json2xml({
              OriginConfiguration: {
                OriginRule: n
              }
            }),
            i = e.Headers;
          i["Content-Type"] = "application/xml", i["Content-MD5"] = r.binaryBase64(r.md5(o)), p.call(this, {
            Action: "name/cos:PutBucketOrigin",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            body: o,
            action: "origin",
            headers: i
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getBucketOrigin: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketOrigin",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "origin"
          }, (function (e, n) {
            if (e) return t(e);
            var o = [];
            try {
              o = n.OriginConfiguration.OriginRule || []
            } catch (i) {}
            o = r.clone(r.isArray(o) ? o : [o]), t(null, {
              OriginRule: o,
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        deleteBucketOrigin: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteBucketOrigin",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "origin"
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketLogging: function (e, t) {
          var n = r.json2xml({
              BucketLoggingStatus: e.BucketLoggingStatus || ""
            }),
            o = e.Headers;
          o["Content-Type"] = "application/xml", o["Content-MD5"] = r.binaryBase64(r.md5(n)), p.call(this, {
            Action: "name/cos:PutBucketLogging",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            body: n,
            action: "logging",
            headers: o
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getBucketLogging: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketLogging",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "logging"
          }, (function (e, n) {
            if (e) return t(e);
            delete n.BucketLoggingStatus._xmlns, t(null, {
              BucketLoggingStatus: n.BucketLoggingStatus,
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketInventory: function (e, t) {
          var n = r.clone(e.InventoryConfiguration);
          if (n.OptionalFields) {
            var o = n.OptionalFields || [];
            n.OptionalFields = {
              Field: o
            }
          }
          if (n.Destination && n.Destination.COSBucketDestination && n.Destination.COSBucketDestination.Encryption) {
            var i = n.Destination.COSBucketDestination.Encryption;
            Object.keys(i).indexOf("SSECOS") > -1 && (i["SSE-COS"] = i.SSECOS, delete i.SSECOS)
          }
          var a = r.json2xml({
              InventoryConfiguration: n
            }),
            s = e.Headers;
          s["Content-Type"] = "application/xml", s["Content-MD5"] = r.binaryBase64(r.md5(a)), p.call(this, {
            Action: "name/cos:PutBucketInventory",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            body: a,
            action: "inventory",
            qs: {
              id: e.Id
            },
            headers: s
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getBucketInventory: function (e, t) {
          p.call(this, {
            Action: "name/cos:GetBucketInventory",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "inventory",
            qs: {
              id: e.Id
            }
          }, (function (e, n) {
            if (e) return t(e);
            var o = n.InventoryConfiguration;
            if (o && o.OptionalFields && o.OptionalFields.Field) {
              var i = o.OptionalFields.Field;
              r.isArray(i) || (i = [i]), o.OptionalFields = i
            }
            if (o.Destination && o.Destination.COSBucketDestination && o.Destination.COSBucketDestination.Encryption) {
              var a = o.Destination.COSBucketDestination.Encryption;
              Object.keys(a).indexOf("SSE-COS") > -1 && (a.SSECOS = a["SSE-COS"], delete a["SSE-COS"])
            }
            t(null, {
              InventoryConfiguration: o,
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        listBucketInventory: function (e, t) {
          p.call(this, {
            Action: "name/cos:ListBucketInventory",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "inventory",
            qs: {
              "continuation-token": e.ContinuationToken
            }
          }, (function (e, n) {
            if (e) return t(e);
            var o = n.ListInventoryConfigurationResult,
              i = o.InventoryConfiguration || [];
            i = r.isArray(i) ? i : [i], delete o.InventoryConfiguration, r.each(i, (function (e) {
              if (e && e.OptionalFields && e.OptionalFields.Field) {
                var t = e.OptionalFields.Field;
                r.isArray(t) || (t = [t]), e.OptionalFields = t
              }
              if (e.Destination && e.Destination.COSBucketDestination && e.Destination.COSBucketDestination.Encryption) {
                var n = e.Destination.COSBucketDestination.Encryption;
                Object.keys(n).indexOf("SSE-COS") > -1 && (n.SSECOS = n["SSE-COS"], delete n["SSE-COS"])
              }
            })), o.InventoryConfigurations = i, r.extend(o, {
              statusCode: n.statusCode,
              headers: n.headers
            }), t(null, o)
          }))
        },
        deleteBucketInventory: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteBucketInventory",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "inventory",
            qs: {
              id: e.Id
            }
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putBucketAccelerate: function (e, t) {
          if (e.AccelerateConfiguration) {
            var n = {
                AccelerateConfiguration: e.AccelerateConfiguration || {}
              },
              o = r.json2xml(n),
              i = {
                "Content-Type": "application/xml"
              };
            i["Content-MD5"] = r.binaryBase64(r.md5(o)), p.call(this, {
              Interface: "putBucketAccelerate",
              Action: "name/cos:PutBucketAccelerate",
              method: "PUT",
              Bucket: e.Bucket,
              Region: e.Region,
              body: o,
              action: "accelerate",
              headers: i
            }, (function (e, n) {
              if (e) return t(e);
              t(null, {
                statusCode: n.statusCode,
                headers: n.headers
              })
            }))
          } else t({
            error: "missing param AccelerateConfiguration"
          })
        },
        getBucketAccelerate: function (e, t) {
          p.call(this, {
            Interface: "getBucketAccelerate",
            Action: "name/cos:GetBucketAccelerate",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            action: "accelerate"
          }, (function (e, n) {
            e || !n.AccelerateConfiguration && (n.AccelerateConfiguration = {}), t(e, n)
          }))
        },
        getObject: function (e, t) {
          var n = e.Query || {},
            o = e.QueryString || "",
            i = e.tracker;
          i && i.setParams({
            signStartTime: (new Date).getTime()
          }), n["response-content-type"] = e.ResponseContentType, n["response-content-language"] = e.ResponseContentLanguage, n["response-expires"] = e.ResponseExpires, n["response-cache-control"] = e.ResponseCacheControl, n["response-content-disposition"] = e.ResponseContentDisposition, n["response-content-encoding"] = e.ResponseContentEncoding, p.call(this, {
            Action: "name/cos:GetObject",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            VersionId: e.VersionId,
            headers: e.Headers,
            qs: n,
            qsStr: o,
            rawBody: !0,
            tracker: i
          }, (function (n, o) {
            if (n) {
              var i = n.statusCode;
              return e.Headers["If-Modified-Since"] && i && 304 === i ? t(null, {
                NotModified: !0
              }) : t(n)
            }
            t(null, {
              Body: o.body,
              ETag: r.attr(o.headers, "etag", ""),
              statusCode: o.statusCode,
              headers: o.headers
            })
          }))
        },
        headObject: function (e, t) {
          p.call(this, {
            Action: "name/cos:HeadObject",
            method: "HEAD",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            VersionId: e.VersionId,
            headers: e.Headers
          }, (function (n, o) {
            if (n) {
              var i = n.statusCode;
              return e.Headers["If-Modified-Since"] && i && 304 === i ? t(null, {
                NotModified: !0,
                statusCode: i
              }) : t(n)
            }
            o.ETag = r.attr(o.headers, "etag", ""), t(null, o)
          }))
        },
        listObjectVersions: function (e, t) {
          var n = {};
          n.prefix = e.Prefix || "", n.delimiter = e.Delimiter, n["key-marker"] = e.KeyMarker, n["version-id-marker"] = e.VersionIdMarker, n["max-keys"] = e.MaxKeys, n["encoding-type"] = e.EncodingType, p.call(this, {
            Action: "name/cos:GetBucketObjectVersions",
            ResourceKey: n.prefix,
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            qs: n,
            action: "versions"
          }, (function (e, n) {
            if (e) return t(e);
            var o = n.ListVersionsResult || {},
              i = o.DeleteMarker || [];
            i = r.isArray(i) ? i : [i];
            var a = o.Version || [];
            a = r.isArray(a) ? a : [a];
            var s = r.clone(o);
            delete s.DeleteMarker, delete s.Version, r.extend(s, {
              DeleteMarkers: i,
              Versions: a,
              statusCode: n.statusCode,
              headers: n.headers
            }), t(null, s)
          }))
        },
        putObject: function (e, t) {
          var n = this,
            o = e.ContentLength,
            a = r.throttleOnProgress.call(n, o, e.onProgress),
            s = e.Headers;
          s["Cache-Control"] || s["cache-control"] || (s["Cache-Control"] = ""), s["Content-Type"] || s["content-type"] || (s["Content-Type"] = i.getType(e.Key) || "application/octet-stream");
          var l = e.UploadAddMetaMd5 || n.options.UploadAddMetaMd5 || n.options.UploadCheckContentMd5,
            u = e.tracker;
          l && u && u.setParams({
            md5StartTime: (new Date).getTime()
          }), r.getBodyMd5(l, e.Body, (function (i) {
            i && (u && u.setParams({
              md5EndTime: (new Date).getTime()
            }), n.options.UploadCheckContentMd5 && (s["Content-MD5"] = r.binaryBase64(i)), (e.UploadAddMetaMd5 || n.options.UploadAddMetaMd5) && (s["x-cos-meta-md5"] = i)), void 0 !== e.ContentLength && (s["Content-Length"] = e.ContentLength), a(null, !0), p.call(n, {
              Action: "name/cos:PutObject",
              TaskId: e.TaskId,
              method: "PUT",
              Bucket: e.Bucket,
              Region: e.Region,
              Key: e.Key,
              headers: e.Headers,
              qs: e.Query,
              body: e.Body,
              onProgress: a,
              tracker: u
            }, (function (i, s) {
              if (i) return a(null, !0), t(i);
              a({
                loaded: o,
                total: o
              }, !0);
              var l = c({
                ForcePathStyle: n.options.ForcePathStyle,
                protocol: n.options.Protocol,
                domain: n.options.Domain,
                bucket: e.Bucket,
                region: n.options.UseAccelerate ? "accelerate" : e.Region,
                object: e.Key
              });
              l = l.substr(l.indexOf("://") + 3), s.Location = l, s.ETag = r.attr(s.headers, "etag", ""), t(null, s)
            }))
          }))
        },
        postObject: function (e, t) {
          var n = this,
            o = {},
            i = e.FilePath;
          if (i) {
            for (var a in o["Cache-Control"] = e.CacheControl, o["Content-Disposition"] = e.ContentDisposition, o["Content-Encoding"] = e.ContentEncoding, o["Content-MD5"] = e.ContentMD5, o["Content-Length"] = e.ContentLength, o["Content-Type"] = e.ContentType, o.Expect = e.Expect, o.Expires = e.Expires, o["x-cos-acl"] = e.ACL, o["x-cos-grant-read"] = e.GrantRead, o["x-cos-grant-write"] = e.GrantWrite, o["x-cos-grant-full-control"] = e.GrantFullControl, o["x-cos-storage-class"] = e.StorageClass, o["x-cos-mime-limit"] = e.MimeLimit, o["x-cos-traffic-limit"] = e.TrafficLimit, o["x-cos-forbid-overwrite"] = e.ForbidOverwrite, o["x-cos-server-side-encryption-customer-algorithm"] = e.SSECustomerAlgorithm, o["x-cos-server-side-encryption-customer-key"] = e.SSECustomerKey, o["x-cos-server-side-encryption-customer-key-MD5"] = e.SSECustomerKeyMD5, o["x-cos-server-side-encryption"] = e.ServerSideEncryption, o["x-cos-server-side-encryption-cos-kms-key-id"] = e.SSEKMSKeyId, o["x-cos-server-side-encryption-context"] = e.SSEContext, delete o["Content-Length"], delete o["content-length"], e) a.indexOf("x-cos-meta-") > -1 && (o[a] = e[a]);
            var s = r.throttleOnProgress.call(n, o["Content-Length"], e.onProgress);
            p.call(this, {
              Action: "name/cos:PostObject",
              method: "POST",
              Bucket: e.Bucket,
              Region: e.Region,
              Key: e.Key,
              headers: o,
              qs: e.Query,
              filePath: i,
              TaskId: e.TaskId,
              onProgress: s
            }, (function (o, r) {
              if (s(null, !0), o) return t(o);
              if (r && r.headers) {
                var a = r.headers,
                  l = a.etag || a.Etag || a.ETag || "",
                  u = i.substr(i.lastIndexOf("/") + 1),
                  d = c({
                    ForcePathStyle: n.options.ForcePathStyle,
                    protocol: n.options.Protocol,
                    domain: n.options.Domain,
                    bucket: e.Bucket,
                    region: e.Region,
                    object: e.Key.replace(/\$\{filename\}/g, u),
                    isLocation: !0
                  });
                return t(null, {
                  Location: d,
                  statusCode: r.statusCode,
                  headers: a,
                  ETag: l
                })
              }
              t(null, r)
            }))
          } else t({
            error: "missing param FilePath"
          })
        },
        deleteObject: function (e, t) {
          p.call(this, {
            Action: "name/cos:DeleteObject",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            headers: e.Headers,
            VersionId: e.VersionId
          }, (function (e, n) {
            if (e) {
              var o = e.statusCode;
              return o && 204 === o ? t(null, {
                statusCode: o
              }) : o && 404 === o ? t(null, {
                BucketNotFound: !0,
                statusCode: o
              }) : t(e)
            }
            t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getObjectAcl: function (e, t) {
          var n = {};
          e.VersionId && (n.versionId = e.VersionId), p.call(this, {
            Action: "name/cos:GetObjectACL",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            headers: e.Headers,
            qs: n,
            action: "acl"
          }, (function (e, n) {
            if (e) return t(e);
            var o = n.AccessControlPolicy || {},
              i = o.Owner || {},
              s = o.AccessControlList && o.AccessControlList.Grant || [];
            s = r.isArray(s) ? s : [s];
            var c = a(o);
            n.headers && n.headers["x-cos-acl"] && (c.ACL = n.headers["x-cos-acl"]), c = r.extend(c, {
              Owner: i,
              Grants: s,
              statusCode: n.statusCode,
              headers: n.headers
            }), t(null, c)
          }))
        },
        putObjectAcl: function (e, t) {
          var n = e.Headers,
            o = "";
          if (e.AccessControlPolicy) {
            var i = r.clone(e.AccessControlPolicy || {}),
              a = i.Grants || i.Grant;
            a = r.isArray(a) ? a : [a], delete i.Grant, delete i.Grants, i.AccessControlList = {
              Grant: a
            }, o = r.json2xml({
              AccessControlPolicy: i
            }), n["Content-Type"] = "application/xml", n["Content-MD5"] = r.binaryBase64(r.md5(o))
          }
          r.each(n, (function (e, t) {
            0 === t.indexOf("x-cos-grant-") && (n[t] = s(n[t]))
          })), p.call(this, {
            Action: "name/cos:PutObjectACL",
            method: "PUT",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            action: "acl",
            headers: n,
            body: o
          }, (function (e, n) {
            if (e) return t(e);
            t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        optionsObject: function (e, t) {
          var n = e.Headers;
          n.Origin = e.Origin, n["Access-Control-Request-Method"] = e.AccessControlRequestMethod, n["Access-Control-Request-Headers"] = e.AccessControlRequestHeaders, p.call(this, {
            Action: "name/cos:OptionsObject",
            method: "OPTIONS",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            headers: n
          }, (function (e, n) {
            if (e) return e.statusCode && 403 === e.statusCode ? t(null, {
              OptionsForbidden: !0,
              statusCode: e.statusCode
            }) : t(e);
            var o = n.headers || {};
            t(null, {
              AccessControlAllowOrigin: o["access-control-allow-origin"],
              AccessControlAllowMethods: o["access-control-allow-methods"],
              AccessControlAllowHeaders: o["access-control-allow-headers"],
              AccessControlExposeHeaders: o["access-control-expose-headers"],
              AccessControlMaxAge: o["access-control-max-age"],
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        putObjectCopy: function (e, t) {
          var n = e.Headers;
          !n["Cache-Control"] && n["cache-control"] && (n["Cache-Control"] = "");
          var o = e.CopySource || "",
            i = r.getSourceParams.call(this, o);
          if (i) {
            var a = i.Bucket,
              s = i.Region,
              c = decodeURIComponent(i.Key);
            p.call(this, {
              Scope: [{
                action: "name/cos:GetObject",
                bucket: a,
                region: s,
                prefix: c
              }, {
                action: "name/cos:PutObject",
                bucket: e.Bucket,
                region: e.Region,
                prefix: e.Key
              }],
              method: "PUT",
              Bucket: e.Bucket,
              Region: e.Region,
              Key: e.Key,
              VersionId: e.VersionId,
              headers: e.Headers
            }, (function (e, n) {
              if (e) return t(e);
              var o = r.clone(n.CopyObjectResult || {});
              r.extend(o, {
                statusCode: n.statusCode,
                headers: n.headers
              }), t(null, o)
            }))
          } else t({
            error: "CopySource format error"
          })
        },
        deleteMultipleObject: function (e, t) {
          var n = e.Objects || [],
            o = e.Quiet;
          n = r.isArray(n) ? n : [n];
          var i = r.json2xml({
              Delete: {
                Object: n,
                Quiet: o || !1
              }
            }),
            a = e.Headers;
          a["Content-Type"] = "application/xml", a["Content-MD5"] = r.binaryBase64(r.md5(i));
          var s = r.map(n, (function (t) {
            return {
              action: "name/cos:DeleteObject",
              bucket: e.Bucket,
              region: e.Region,
              prefix: t.Key
            }
          }));
          p.call(this, {
            Scope: s,
            method: "POST",
            Bucket: e.Bucket,
            Region: e.Region,
            body: i,
            action: "delete",
            headers: a
          }, (function (e, n) {
            if (e) return t(e);
            var o = n.DeleteResult || {},
              i = o.Deleted || [],
              a = o.Error || [];
            i = r.isArray(i) ? i : [i], a = r.isArray(a) ? a : [a];
            var s = r.clone(o);
            r.extend(s, {
              Error: a,
              Deleted: i,
              statusCode: n.statusCode,
              headers: n.headers
            }), t(null, s)
          }))
        },
        restoreObject: function (e, t) {
          var n = e.Headers;
          if (e.RestoreRequest) {
            var o = e.RestoreRequest || {},
              i = r.json2xml({
                RestoreRequest: o
              });
            n["Content-Type"] = "application/xml", n["Content-MD5"] = r.binaryBase64(r.md5(i)), p.call(this, {
              Action: "name/cos:RestoreObject",
              method: "POST",
              Bucket: e.Bucket,
              Region: e.Region,
              Key: e.Key,
              VersionId: e.VersionId,
              body: i,
              action: "restore",
              headers: n
            }, (function (e, n) {
              t(e, n)
            }))
          } else t({
            error: "missing param RestoreRequest"
          })
        },
        putObjectTagging: function (e, t) {
          var n = e.Tagging || {},
            o = n.TagSet || n.Tags || e.Tags || [];
          o = r.clone(r.isArray(o) ? o : [o]);
          var i = r.json2xml({
              Tagging: {
                TagSet: {
                  Tag: o
                }
              }
            }),
            a = e.Headers;
          a["Content-Type"] = "application/xml", a["Content-MD5"] = r.binaryBase64(r.md5(i)), p.call(this, {
            Interface: "putObjectTagging",
            Action: "name/cos:PutObjectTagging",
            method: "PUT",
            Bucket: e.Bucket,
            Key: e.Key,
            Region: e.Region,
            body: i,
            action: "tagging",
            headers: a,
            VersionId: e.VersionId
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        getObjectTagging: function (e, t) {
          p.call(this, {
            Interface: "getObjectTagging",
            Action: "name/cos:GetObjectTagging",
            method: "GET",
            Key: e.Key,
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            action: "tagging",
            VersionId: e.VersionId
          }, (function (e, n) {
            if (e)
              if (404 !== e.statusCode || !e.error || "Not Found" !== e.error && "NoSuchTagSet" !== e.error.Code) t(e);
              else {
                var o = {
                  Tags: [],
                  statusCode: e.statusCode
                };
                e.headers && (o.headers = e.headers), t(null, o)
              }
            else {
              var i = [];
              try {
                i = n.Tagging.TagSet.Tag || []
              } catch (a) {}
              i = r.clone(r.isArray(i) ? i : [i]), t(null, {
                Tags: i,
                statusCode: n.statusCode,
                headers: n.headers
              })
            }
          }))
        },
        deleteObjectTagging: function (e, t) {
          p.call(this, {
            Interface: "deleteObjectTagging",
            Action: "name/cos:DeleteObjectTagging",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            headers: e.Headers,
            action: "tagging",
            VersionId: e.VersionId
          }, (function (e, n) {
            return e && 204 === e.statusCode ? t(null, {
              statusCode: e.statusCode
            }) : e ? t(e) : void t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        appendObject: function (e, t) {
          p.call(this, {
            Action: "name/cos:AppendObject",
            method: "POST",
            Bucket: e.Bucket,
            Region: e.Region,
            action: "append",
            Key: e.Key,
            body: e.Body,
            qs: {
              position: e.Position
            },
            headers: e.Headers
          }, (function (e, n) {
            if (e) return t(e);
            t(null, n)
          }))
        },
        uploadPartCopy: function (e, t) {
          var n = e.CopySource || "",
            o = r.getSourceParams.call(this, n);
          if (o) {
            var i = o.Bucket,
              a = o.Region,
              s = decodeURIComponent(o.Key);
            p.call(this, {
              Scope: [{
                action: "name/cos:GetObject",
                bucket: i,
                region: a,
                prefix: s
              }, {
                action: "name/cos:PutObject",
                bucket: e.Bucket,
                region: e.Region,
                prefix: e.Key
              }],
              method: "PUT",
              Bucket: e.Bucket,
              Region: e.Region,
              Key: e.Key,
              VersionId: e.VersionId,
              qs: {
                partNumber: e.PartNumber,
                uploadId: e.UploadId
              },
              headers: e.Headers
            }, (function (e, n) {
              if (e) return t(e);
              var o = r.clone(n.CopyPartResult || {});
              r.extend(o, {
                statusCode: n.statusCode,
                headers: n.headers
              }), t(null, o)
            }))
          } else t({
            error: "CopySource format error"
          })
        },
        multipartInit: function (e, t) {
          var n = e.Headers,
            o = e.tracker;
          n["Cache-Control"] || n["cache-control"] || (n["Cache-Control"] = ""), n["Content-Type"] || n["content-type"] || (n["Content-Type"] = i.getType(e.Key) || "application/octet-stream"), p.call(this, {
            Action: "name/cos:InitiateMultipartUpload",
            method: "POST",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            action: "uploads",
            headers: e.Headers,
            qs: e.Query,
            tracker: o
          }, (function (e, n) {
            return e ? (o && o.parent && o.parent.setParams({
              errorNode: "multipartInit"
            }), t(e)) : (n = r.clone(n || {})) && n.InitiateMultipartUploadResult ? t(null, r.extend(n.InitiateMultipartUploadResult, {
              statusCode: n.statusCode,
              headers: n.headers
            })) : void t(null, n)
          }))
        },
        multipartUpload: function (e, t) {
          var n = this;
          r.getFileSize("multipartUpload", e, (function () {
            var o = e.tracker,
              i = n.options.UploadCheckContentMd5;
            i && o && o.setParams({
              md5StartTime: (new Date).getTime()
            }), r.getBodyMd5(i, e.Body, (function (a) {
              a && (e.Headers["Content-MD5"] = r.binaryBase64(a), i && o && o.setParams({
                md5EndTime: (new Date).getTime()
              })), o && o.setParams({
                partNumber: e.PartNumber
              }), p.call(n, {
                Action: "name/cos:UploadPart",
                TaskId: e.TaskId,
                method: "PUT",
                Bucket: e.Bucket,
                Region: e.Region,
                Key: e.Key,
                qs: {
                  partNumber: e.PartNumber,
                  uploadId: e.UploadId
                },
                headers: e.Headers,
                onProgress: e.onProgress,
                body: e.Body || null,
                tracker: o
              }, (function (e, n) {
                if (e) return o && o.parent && o.parent.setParams({
                  errorNode: "multipartUpload"
                }), t(e);
                t(null, {
                  ETag: r.attr(n.headers, "etag", {}),
                  statusCode: n.statusCode,
                  headers: n.headers
                })
              }))
            }))
          }))
        },
        multipartComplete: function (e, t) {
          for (var n = this, o = e.UploadId, i = e.Parts, a = e.tracker, s = 0, l = i.length; s < l; s++) 0 !== i[s].ETag.indexOf('"') && (i[s].ETag = '"' + i[s].ETag + '"');
          var u = r.json2xml({
              CompleteMultipartUpload: {
                Part: i
              }
            }),
            d = e.Headers;
          d["Content-Type"] = "application/xml", d["Content-MD5"] = r.binaryBase64(r.md5(u)), p.call(this, {
            Action: "name/cos:CompleteMultipartUpload",
            method: "POST",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            qs: {
              uploadId: o
            },
            body: u,
            headers: d,
            tracker: a
          }, (function (o, i) {
            if (o) return a && a.parent && a.parent.setParams({
              errorNode: "multipartComplete"
            }), t(o);
            var s = c({
                ForcePathStyle: n.options.ForcePathStyle,
                protocol: n.options.Protocol,
                domain: n.options.Domain,
                bucket: e.Bucket,
                region: e.Region,
                object: e.Key,
                isLocation: !0
              }),
              l = i.CompleteMultipartUploadResult || {},
              u = r.extend(l, {
                Location: s,
                statusCode: i.statusCode,
                headers: i.headers
              });
            t(null, u)
          }))
        },
        multipartList: function (e, t) {
          var n = {};
          n.delimiter = e.Delimiter, n["encoding-type"] = e.EncodingType, n.prefix = e.Prefix || "", n["max-uploads"] = e.MaxUploads, n["key-marker"] = e.KeyMarker, n["upload-id-marker"] = e.UploadIdMarker, n = r.clearKey(n);
          var o = e.tracker;
          o && o.setParams({
            signStartTime: (new Date).getTime()
          }), p.call(this, {
            Action: "name/cos:ListMultipartUploads",
            ResourceKey: n.prefix,
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            headers: e.Headers,
            qs: n,
            action: "uploads",
            tracker: o
          }, (function (e, n) {
            if (e) return o && o.parent && o.parent.setParams({
              errorNode: "multipartList"
            }), t(e);
            if (n && n.ListMultipartUploadsResult) {
              var i = n.ListMultipartUploadsResult.Upload || [],
                a = n.ListMultipartUploadsResult.CommonPrefixes || [];
              a = r.isArray(a) ? a : [a], i = r.isArray(i) ? i : [i], n.ListMultipartUploadsResult.Upload = i, n.ListMultipartUploadsResult.CommonPrefixes = a
            }
            var s = r.clone(n.ListMultipartUploadsResult || {});
            r.extend(s, {
              statusCode: n.statusCode,
              headers: n.headers
            }), t(null, s)
          }))
        },
        multipartListPart: function (e, t) {
          var n = {},
            o = e.tracker;
          n.uploadId = e.UploadId, n["encoding-type"] = e.EncodingType, n["max-parts"] = e.MaxParts, n["part-number-marker"] = e.PartNumberMarker, p.call(this, {
            Action: "name/cos:ListParts",
            method: "GET",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            headers: e.Headers,
            qs: n,
            tracker: o
          }, (function (e, n) {
            if (e) return o && o.parent && o.parent.setParams({
              errorNode: "multipartListPart"
            }), t(e);
            var i = n.ListPartsResult || {},
              a = i.Part || [];
            a = r.isArray(a) ? a : [a], i.Part = a;
            var s = r.clone(i);
            r.extend(s, {
              statusCode: n.statusCode,
              headers: n.headers
            }), t(null, s)
          }))
        },
        multipartAbort: function (e, t) {
          var n = {};
          n.uploadId = e.UploadId, p.call(this, {
            Action: "name/cos:AbortMultipartUpload",
            method: "DELETE",
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            headers: e.Headers,
            qs: n
          }, (function (e, n) {
            if (e) return t(e);
            t(null, {
              statusCode: n.statusCode,
              headers: n.headers
            })
          }))
        },
        request: function (e, t) {
          p.call(this, {
            method: e.Method,
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            action: e.Action,
            headers: e.Headers,
            qs: e.Query,
            body: e.Body,
            Url: e.Url,
            rawBody: e.RawBody
          }, (function (e, n) {
            if (e) return t(e);
            n && n.body && (n.Body = n.body, delete n.body), t(e, n)
          }))
        },
        getObjectUrl: function (e, t) {
          var n = this,
            o = void 0 === e.UseAccelerate ? n.options.UseAccelerate : e.UseAccelerate,
            i = c({
              ForcePathStyle: n.options.ForcePathStyle,
              protocol: e.Protocol || n.options.Protocol,
              domain: e.Domain || n.options.Domain,
              bucket: e.Bucket,
              region: o ? "accelerate" : e.Region,
              object: e.Key
            }),
            a = "";
          e.Query && (a += r.obj2str(e.Query)), e.QueryString && (a += (a ? "&" : "") + e.QueryString);
          var s = i;
          if (void 0 !== e.Sign && !e.Sign) return a && (s += "?" + a), t(null, {
            Url: s
          }), s;
          var d = l.call(this, {
              Bucket: e.Bucket,
              Region: e.Region,
              UseAccelerate: e.UseAccelerate,
              Url: i
            }),
            p = u.call(this, {
              Action: "PUT" === (e.Method || "").toUpperCase() ? "name/cos:PutObject" : "name/cos:GetObject",
              Bucket: e.Bucket || "",
              Region: e.Region || "",
              Method: e.Method || "get",
              Key: e.Key,
              Expires: e.Expires,
              Headers: e.Headers,
              Query: e.Query,
              SignHost: d,
              ForceSignHost: !1 !== e.ForceSignHost && n.options.ForceSignHost
            }, (function (e, n) {
              if (t)
                if (e) t(e);
                else {
                  var o = i;
                  o += "?" + (n.Authorization.indexOf("q-signature") > -1 ? (r = n.Authorization, s = r.match(/q-url-param-list.*?(?=&)/g)[0], c = "q-url-param-list=" + encodeURIComponent(s.replace(/q-url-param-list=/, "")).toLowerCase(), l = new RegExp(s, "g"), r.replace(l, c)) : "sign=" + encodeURIComponent(n.Authorization)), n.SecurityToken && (o += "&x-cos-security-token=" + n.SecurityToken), n.ClientIP && (o += "&clientIP=" + n.ClientIP), n.ClientUA && (o += "&clientUA=" + n.ClientUA), n.Token && (o += "&token=" + n.Token), a && (o += "&" + a), setTimeout((function () {
                    t(null, {
                      Url: o
                    })
                  }))
                } var r, s, c, l
            }));
          return p ? (s += "?" + p.Authorization + (p.SecurityToken ? "&x-cos-security-token=" + p.SecurityToken : ""), a && (s += "&" + a)) : a && (s += "?" + a), s
        },
        getAuth: function (e) {
          return r.getAuth({
            SecretId: e.SecretId || this.options.SecretId || "",
            SecretKey: e.SecretKey || this.options.SecretKey || "",
            Bucket: e.Bucket,
            Region: e.Region,
            Method: e.Method,
            Key: e.Key,
            Query: e.Query,
            Headers: e.Headers,
            Expires: e.Expires,
            SystemClockOffset: this.options.SystemClockOffset
          })
        }
      };
      e.exports.init = function (e, t) {
        t.transferToTaskMethod(h, "postObject"), t.transferToTaskMethod(h, "putObject"), r.each(h, (function (t, n) {
          e.prototype[n] = r.apiWrapper(n, t)
        }))
      }
    }, function (e, t) {
      function n(e) {
        return encodeURIComponent(e).replace(/!/g, "%21").replace(/'/g, "%27").replace(/\(/g, "%28").replace(/\)/g, "%29").replace(/\*/g, "%2A")
      }
      e.exports = function (e, t) {
        var o, r = e.filePath,
          i = e.headers || {},
          a = e.url || e.Url,
          s = e.method,
          c = e.onProgress,
          l = e.httpDNSServiceId,
          u = function (e, n) {
            var o = n.header,
              r = {};
            if (o)
              for (var i in o) o.hasOwnProperty(i) && (r[i.toLowerCase()] = o[i]);
            t(e, {
              statusCode: n.statusCode,
              headers: r
            }, n.data)
          };
        if (r) {
          var d, p = a.match(/^(https?:\/\/[^/]+\/)([^/]*\/?)(.*)$/);
          e.pathStyle ? (d = decodeURIComponent(p[3] || ""), a = p[1] + p[2]) : (d = decodeURIComponent(p[2] + p[3] || ""), a = p[1]);
          var f = {
              key: d,
              success_action_status: 200,
              Signature: i.Authorization
            },
            h = ["Cache-Control", "Content-Type", "Content-Disposition", "Content-Encoding", "Expires", "x-cos-storage-class", "x-cos-security-token", "x-ci-security-token"];
          for (var m in e.headers) e.headers.hasOwnProperty(m) && (m.indexOf("x-cos-meta-") > -1 || h.indexOf(m) > -1) && (f[m] = e.headers[m]);
          i["x-cos-acl"] && (f.acl = i["x-cos-acl"]), !f["Content-Type"] && (f["Content-Type"] = ""), (o = wx$1.uploadFile({
            url: a,
            method: s,
            name: "file",
            header: i,
            filePath: r,
            formData: f,
            timeout: e.timeout,
            success: function (e) {
              u(null, e)
            },
            fail: function (e) {
              u(e.errMsg, e)
            }
          })).onProgressUpdate((function (e) {
            c && c({
              loaded: e.totalBytesSent,
              total: e.totalBytesExpectedToSend,
              progress: e.progress / 100
            })
          }))
        } else {
          var g = e.qs && function (e, t) {
            var o, r, i, a = [],
              s = function (e, t) {
                var n = [];
                for (var o in e) e.hasOwnProperty(o) && n.push(o);
                return n.sort((function (e, t) {
                  return (e = e.toLowerCase()) === (t = t.toLowerCase()) ? 0 : e > t ? 1 : -1
                }))
              }(e);
            for (o = 0; o < s.length; o++) i = void 0 === e[r = s[o]] || null === e[r] ? "" : "" + e[r], r = t ? n(r).toLowerCase() : n(r), i = n(i) || "", a.push(r + "=" + i);
            return a.join("&")
          }(e.qs) || "";
          g && (a += (a.indexOf("?") > -1 ? "&" : "?") + g), i["Content-Length"] && delete i["Content-Length"];
          var y = {
            url: a,
            method: s,
            header: i,
            dataType: "text",
            data: e.body,
            timeout: e.timeout,
            success: function (e) {
              u(null, e)
            },
            fail: function (e) {
              u(e.errMsg, e)
            }
          };
          l && Object.assign(y, {
            enableHttpDNS: !0,
            httpDNSServiceId: l
          }), o = wx$1.request(y)
        }
        return o
      }
    }, function (e, t, n) {
      let o = n(27);
      e.exports = new o(n(28), n(29))
    }, function (e, t, n) {
      function o() {
        this._types = Object.create(null), this._extensions = Object.create(null);
        for (let e = 0; e < arguments.length; e++) this.define(arguments[e]);
        this.define = this.define.bind(this), this.getType = this.getType.bind(this), this.getExtension = this.getExtension.bind(this)
      }
      o.prototype.define = function (e, t) {
        for (let n in e) {
          let o = e[n].map((function (e) {
            return e.toLowerCase()
          }));
          n = n.toLowerCase();
          for (let e = 0; e < o.length; e++) {
            const r = o[e];
            if ("*" !== r[0]) {
              if (!t && r in this._types) throw new Error('Attempt to change mapping for "' + r + '" extension from "' + this._types[r] + '" to "' + n + '". Pass `force=true` to allow this, otherwise remove "' + r + '" from the list of extensions for "' + n + '".');
              this._types[r] = n
            }
          }
          if (t || !this._extensions[n]) {
            const e = o[0];
            this._extensions[n] = "*" !== e[0] ? e : e.substr(1)
          }
        }
      }, o.prototype.getType = function (e) {
        let t = (e = String(e)).replace(/^.*[/\\]/, "").toLowerCase(),
          n = t.replace(/^.*\./, "").toLowerCase(),
          o = t.length < e.length;
        return (n.length < t.length - 1 || !o) && this._types[n] || null
      }, o.prototype.getExtension = function (e) {
        return (e = /^\s*([^;\s]*)/.test(e) && RegExp.$1) && this._extensions[e.toLowerCase()] || null
      }, e.exports = o
    }, function (e, t) {
      e.exports = {
        "application/andrew-inset": ["ez"],
        "application/applixware": ["aw"],
        "application/atom+xml": ["atom"],
        "application/atomcat+xml": ["atomcat"],
        "application/atomdeleted+xml": ["atomdeleted"],
        "application/atomsvc+xml": ["atomsvc"],
        "application/atsc-dwd+xml": ["dwd"],
        "application/atsc-held+xml": ["held"],
        "application/atsc-rsat+xml": ["rsat"],
        "application/bdoc": ["bdoc"],
        "application/calendar+xml": ["xcs"],
        "application/ccxml+xml": ["ccxml"],
        "application/cdfx+xml": ["cdfx"],
        "application/cdmi-capability": ["cdmia"],
        "application/cdmi-container": ["cdmic"],
        "application/cdmi-domain": ["cdmid"],
        "application/cdmi-object": ["cdmio"],
        "application/cdmi-queue": ["cdmiq"],
        "application/cu-seeme": ["cu"],
        "application/dash+xml": ["mpd"],
        "application/davmount+xml": ["davmount"],
        "application/docbook+xml": ["dbk"],
        "application/dssc+der": ["dssc"],
        "application/dssc+xml": ["xdssc"],
        "application/ecmascript": ["es", "ecma"],
        "application/emma+xml": ["emma"],
        "application/emotionml+xml": ["emotionml"],
        "application/epub+zip": ["epub"],
        "application/exi": ["exi"],
        "application/express": ["exp"],
        "application/fdt+xml": ["fdt"],
        "application/font-tdpfr": ["pfr"],
        "application/geo+json": ["geojson"],
        "application/gml+xml": ["gml"],
        "application/gpx+xml": ["gpx"],
        "application/gxf": ["gxf"],
        "application/gzip": ["gz"],
        "application/hjson": ["hjson"],
        "application/hyperstudio": ["stk"],
        "application/inkml+xml": ["ink", "inkml"],
        "application/ipfix": ["ipfix"],
        "application/its+xml": ["its"],
        "application/java-archive": ["jar", "war", "ear"],
        "application/java-serialized-object": ["ser"],
        "application/java-vm": ["class"],
        "application/javascript": ["js", "mjs"],
        "application/json": ["json", "map"],
        "application/json5": ["json5"],
        "application/jsonml+json": ["jsonml"],
        "application/ld+json": ["jsonld"],
        "application/lgr+xml": ["lgr"],
        "application/lost+xml": ["lostxml"],
        "application/mac-binhex40": ["hqx"],
        "application/mac-compactpro": ["cpt"],
        "application/mads+xml": ["mads"],
        "application/manifest+json": ["webmanifest"],
        "application/marc": ["mrc"],
        "application/marcxml+xml": ["mrcx"],
        "application/mathematica": ["ma", "nb", "mb"],
        "application/mathml+xml": ["mathml"],
        "application/mbox": ["mbox"],
        "application/mediaservercontrol+xml": ["mscml"],
        "application/metalink+xml": ["metalink"],
        "application/metalink4+xml": ["meta4"],
        "application/mets+xml": ["mets"],
        "application/mmt-aei+xml": ["maei"],
        "application/mmt-usd+xml": ["musd"],
        "application/mods+xml": ["mods"],
        "application/mp21": ["m21", "mp21"],
        "application/mp4": ["mp4s", "m4p"],
        "application/msword": ["doc", "dot"],
        "application/mxf": ["mxf"],
        "application/n-quads": ["nq"],
        "application/n-triples": ["nt"],
        "application/node": ["cjs"],
        "application/octet-stream": ["bin", "dms", "lrf", "mar", "so", "dist", "distz", "pkg", "bpk", "dump", "elc", "deploy", "exe", "dll", "deb", "dmg", "iso", "img", "msi", "msp", "msm", "buffer"],
        "application/oda": ["oda"],
        "application/oebps-package+xml": ["opf"],
        "application/ogg": ["ogx"],
        "application/omdoc+xml": ["omdoc"],
        "application/onenote": ["onetoc", "onetoc2", "onetmp", "onepkg"],
        "application/oxps": ["oxps"],
        "application/p2p-overlay+xml": ["relo"],
        "application/patch-ops-error+xml": ["xer"],
        "application/pdf": ["pdf"],
        "application/pgp-encrypted": ["pgp"],
        "application/pgp-signature": ["asc", "sig"],
        "application/pics-rules": ["prf"],
        "application/pkcs10": ["p10"],
        "application/pkcs7-mime": ["p7m", "p7c"],
        "application/pkcs7-signature": ["p7s"],
        "application/pkcs8": ["p8"],
        "application/pkix-attr-cert": ["ac"],
        "application/pkix-cert": ["cer"],
        "application/pkix-crl": ["crl"],
        "application/pkix-pkipath": ["pkipath"],
        "application/pkixcmp": ["pki"],
        "application/pls+xml": ["pls"],
        "application/postscript": ["ai", "eps", "ps"],
        "application/provenance+xml": ["provx"],
        "application/pskc+xml": ["pskcxml"],
        "application/raml+yaml": ["raml"],
        "application/rdf+xml": ["rdf", "owl"],
        "application/reginfo+xml": ["rif"],
        "application/relax-ng-compact-syntax": ["rnc"],
        "application/resource-lists+xml": ["rl"],
        "application/resource-lists-diff+xml": ["rld"],
        "application/rls-services+xml": ["rs"],
        "application/route-apd+xml": ["rapd"],
        "application/route-s-tsid+xml": ["sls"],
        "application/route-usd+xml": ["rusd"],
        "application/rpki-ghostbusters": ["gbr"],
        "application/rpki-manifest": ["mft"],
        "application/rpki-roa": ["roa"],
        "application/rsd+xml": ["rsd"],
        "application/rss+xml": ["rss"],
        "application/rtf": ["rtf"],
        "application/sbml+xml": ["sbml"],
        "application/scvp-cv-request": ["scq"],
        "application/scvp-cv-response": ["scs"],
        "application/scvp-vp-request": ["spq"],
        "application/scvp-vp-response": ["spp"],
        "application/sdp": ["sdp"],
        "application/senml+xml": ["senmlx"],
        "application/sensml+xml": ["sensmlx"],
        "application/set-payment-initiation": ["setpay"],
        "application/set-registration-initiation": ["setreg"],
        "application/shf+xml": ["shf"],
        "application/sieve": ["siv", "sieve"],
        "application/smil+xml": ["smi", "smil"],
        "application/sparql-query": ["rq"],
        "application/sparql-results+xml": ["srx"],
        "application/srgs": ["gram"],
        "application/srgs+xml": ["grxml"],
        "application/sru+xml": ["sru"],
        "application/ssdl+xml": ["ssdl"],
        "application/ssml+xml": ["ssml"],
        "application/swid+xml": ["swidtag"],
        "application/tei+xml": ["tei", "teicorpus"],
        "application/thraud+xml": ["tfi"],
        "application/timestamped-data": ["tsd"],
        "application/toml": ["toml"],
        "application/trig": ["trig"],
        "application/ttml+xml": ["ttml"],
        "application/ubjson": ["ubj"],
        "application/urc-ressheet+xml": ["rsheet"],
        "application/urc-targetdesc+xml": ["td"],
        "application/voicexml+xml": ["vxml"],
        "application/wasm": ["wasm"],
        "application/widget": ["wgt"],
        "application/winhlp": ["hlp"],
        "application/wsdl+xml": ["wsdl"],
        "application/wspolicy+xml": ["wspolicy"],
        "application/xaml+xml": ["xaml"],
        "application/xcap-att+xml": ["xav"],
        "application/xcap-caps+xml": ["xca"],
        "application/xcap-diff+xml": ["xdf"],
        "application/xcap-el+xml": ["xel"],
        "application/xcap-ns+xml": ["xns"],
        "application/xenc+xml": ["xenc"],
        "application/xhtml+xml": ["xhtml", "xht"],
        "application/xliff+xml": ["xlf"],
        "application/xml": ["xml", "xsl", "xsd", "rng"],
        "application/xml-dtd": ["dtd"],
        "application/xop+xml": ["xop"],
        "application/xproc+xml": ["xpl"],
        "application/xslt+xml": ["*xsl", "xslt"],
        "application/xspf+xml": ["xspf"],
        "application/xv+xml": ["mxml", "xhvml", "xvml", "xvm"],
        "application/yang": ["yang"],
        "application/yin+xml": ["yin"],
        "application/zip": ["zip"],
        "audio/3gpp": ["*3gpp"],
        "audio/adpcm": ["adp"],
        "audio/amr": ["amr"],
        "audio/basic": ["au", "snd"],
        "audio/midi": ["mid", "midi", "kar", "rmi"],
        "audio/mobile-xmf": ["mxmf"],
        "audio/mp3": ["*mp3"],
        "audio/mp4": ["m4a", "mp4a"],
        "audio/mpeg": ["mpga", "mp2", "mp2a", "mp3", "m2a", "m3a"],
        "audio/ogg": ["oga", "ogg", "spx", "opus"],
        "audio/s3m": ["s3m"],
        "audio/silk": ["sil"],
        "audio/wav": ["wav"],
        "audio/wave": ["*wav"],
        "audio/webm": ["weba"],
        "audio/xm": ["xm"],
        "font/collection": ["ttc"],
        "font/otf": ["otf"],
        "font/ttf": ["ttf"],
        "font/woff": ["woff"],
        "font/woff2": ["woff2"],
        "image/aces": ["exr"],
        "image/apng": ["apng"],
        "image/avif": ["avif"],
        "image/bmp": ["bmp"],
        "image/cgm": ["cgm"],
        "image/dicom-rle": ["drle"],
        "image/emf": ["emf"],
        "image/fits": ["fits"],
        "image/g3fax": ["g3"],
        "image/gif": ["gif"],
        "image/heic": ["heic"],
        "image/heic-sequence": ["heics"],
        "image/heif": ["heif"],
        "image/heif-sequence": ["heifs"],
        "image/hej2k": ["hej2"],
        "image/hsj2": ["hsj2"],
        "image/ief": ["ief"],
        "image/jls": ["jls"],
        "image/jp2": ["jp2", "jpg2"],
        "image/jpeg": ["jpeg", "jpg", "jpe"],
        "image/jph": ["jph"],
        "image/jphc": ["jhc"],
        "image/jpm": ["jpm"],
        "image/jpx": ["jpx", "jpf"],
        "image/jxr": ["jxr"],
        "image/jxra": ["jxra"],
        "image/jxrs": ["jxrs"],
        "image/jxs": ["jxs"],
        "image/jxsc": ["jxsc"],
        "image/jxsi": ["jxsi"],
        "image/jxss": ["jxss"],
        "image/ktx": ["ktx"],
        "image/ktx2": ["ktx2"],
        "image/png": ["png"],
        "image/sgi": ["sgi"],
        "image/svg+xml": ["svg", "svgz"],
        "image/t38": ["t38"],
        "image/tiff": ["tif", "tiff"],
        "image/tiff-fx": ["tfx"],
        "image/webp": ["webp"],
        "image/wmf": ["wmf"],
        "message/disposition-notification": ["disposition-notification"],
        "message/global": ["u8msg"],
        "message/global-delivery-status": ["u8dsn"],
        "message/global-disposition-notification": ["u8mdn"],
        "message/global-headers": ["u8hdr"],
        "message/rfc822": ["eml", "mime"],
        "model/3mf": ["3mf"],
        "model/gltf+json": ["gltf"],
        "model/gltf-binary": ["glb"],
        "model/iges": ["igs", "iges"],
        "model/mesh": ["msh", "mesh", "silo"],
        "model/mtl": ["mtl"],
        "model/obj": ["obj"],
        "model/step+xml": ["stpx"],
        "model/step+zip": ["stpz"],
        "model/step-xml+zip": ["stpxz"],
        "model/stl": ["stl"],
        "model/vrml": ["wrl", "vrml"],
        "model/x3d+binary": ["*x3db", "x3dbz"],
        "model/x3d+fastinfoset": ["x3db"],
        "model/x3d+vrml": ["*x3dv", "x3dvz"],
        "model/x3d+xml": ["x3d", "x3dz"],
        "model/x3d-vrml": ["x3dv"],
        "text/cache-manifest": ["appcache", "manifest"],
        "text/calendar": ["ics", "ifb"],
        "text/coffeescript": ["coffee", "litcoffee"],
        "text/css": ["css"],
        "text/csv": ["csv"],
        "text/html": ["html", "htm", "shtml"],
        "text/jade": ["jade"],
        "text/jsx": ["jsx"],
        "text/less": ["less"],
        "text/markdown": ["markdown", "md"],
        "text/mathml": ["mml"],
        "text/mdx": ["mdx"],
        "text/n3": ["n3"],
        "text/plain": ["txt", "text", "conf", "def", "list", "log", "in", "ini"],
        "text/richtext": ["rtx"],
        "text/rtf": ["*rtf"],
        "text/sgml": ["sgml", "sgm"],
        "text/shex": ["shex"],
        "text/slim": ["slim", "slm"],
        "text/spdx": ["spdx"],
        "text/stylus": ["stylus", "styl"],
        "text/tab-separated-values": ["tsv"],
        "text/troff": ["t", "tr", "roff", "man", "me", "ms"],
        "text/turtle": ["ttl"],
        "text/uri-list": ["uri", "uris", "urls"],
        "text/vcard": ["vcard"],
        "text/vtt": ["vtt"],
        "text/xml": ["*xml"],
        "text/yaml": ["yaml", "yml"],
        "video/3gpp": ["3gp", "3gpp"],
        "video/3gpp2": ["3g2"],
        "video/h261": ["h261"],
        "video/h263": ["h263"],
        "video/h264": ["h264"],
        "video/iso.segment": ["m4s"],
        "video/jpeg": ["jpgv"],
        "video/jpm": ["*jpm", "jpgm"],
        "video/mj2": ["mj2", "mjp2"],
        "video/mp2t": ["ts"],
        "video/mp4": ["mp4", "mp4v", "mpg4"],
        "video/mpeg": ["mpeg", "mpg", "mpe", "m1v", "m2v"],
        "video/ogg": ["ogv"],
        "video/quicktime": ["qt", "mov"],
        "video/webm": ["webm"]
      }
    }, function (e, t) {
      e.exports = {
        "application/prs.cww": ["cww"],
        "application/vnd.1000minds.decision-model+xml": ["1km"],
        "application/vnd.3gpp.pic-bw-large": ["plb"],
        "application/vnd.3gpp.pic-bw-small": ["psb"],
        "application/vnd.3gpp.pic-bw-var": ["pvb"],
        "application/vnd.3gpp2.tcap": ["tcap"],
        "application/vnd.3m.post-it-notes": ["pwn"],
        "application/vnd.accpac.simply.aso": ["aso"],
        "application/vnd.accpac.simply.imp": ["imp"],
        "application/vnd.acucobol": ["acu"],
        "application/vnd.acucorp": ["atc", "acutc"],
        "application/vnd.adobe.air-application-installer-package+zip": ["air"],
        "application/vnd.adobe.formscentral.fcdt": ["fcdt"],
        "application/vnd.adobe.fxp": ["fxp", "fxpl"],
        "application/vnd.adobe.xdp+xml": ["xdp"],
        "application/vnd.adobe.xfdf": ["xfdf"],
        "application/vnd.ahead.space": ["ahead"],
        "application/vnd.airzip.filesecure.azf": ["azf"],
        "application/vnd.airzip.filesecure.azs": ["azs"],
        "application/vnd.amazon.ebook": ["azw"],
        "application/vnd.americandynamics.acc": ["acc"],
        "application/vnd.amiga.ami": ["ami"],
        "application/vnd.android.package-archive": ["apk"],
        "application/vnd.anser-web-certificate-issue-initiation": ["cii"],
        "application/vnd.anser-web-funds-transfer-initiation": ["fti"],
        "application/vnd.antix.game-component": ["atx"],
        "application/vnd.apple.installer+xml": ["mpkg"],
        "application/vnd.apple.keynote": ["key"],
        "application/vnd.apple.mpegurl": ["m3u8"],
        "application/vnd.apple.numbers": ["numbers"],
        "application/vnd.apple.pages": ["pages"],
        "application/vnd.apple.pkpass": ["pkpass"],
        "application/vnd.aristanetworks.swi": ["swi"],
        "application/vnd.astraea-software.iota": ["iota"],
        "application/vnd.audiograph": ["aep"],
        "application/vnd.balsamiq.bmml+xml": ["bmml"],
        "application/vnd.blueice.multipass": ["mpm"],
        "application/vnd.bmi": ["bmi"],
        "application/vnd.businessobjects": ["rep"],
        "application/vnd.chemdraw+xml": ["cdxml"],
        "application/vnd.chipnuts.karaoke-mmd": ["mmd"],
        "application/vnd.cinderella": ["cdy"],
        "application/vnd.citationstyles.style+xml": ["csl"],
        "application/vnd.claymore": ["cla"],
        "application/vnd.cloanto.rp9": ["rp9"],
        "application/vnd.clonk.c4group": ["c4g", "c4d", "c4f", "c4p", "c4u"],
        "application/vnd.cluetrust.cartomobile-config": ["c11amc"],
        "application/vnd.cluetrust.cartomobile-config-pkg": ["c11amz"],
        "application/vnd.commonspace": ["csp"],
        "application/vnd.contact.cmsg": ["cdbcmsg"],
        "application/vnd.cosmocaller": ["cmc"],
        "application/vnd.crick.clicker": ["clkx"],
        "application/vnd.crick.clicker.keyboard": ["clkk"],
        "application/vnd.crick.clicker.palette": ["clkp"],
        "application/vnd.crick.clicker.template": ["clkt"],
        "application/vnd.crick.clicker.wordbank": ["clkw"],
        "application/vnd.criticaltools.wbs+xml": ["wbs"],
        "application/vnd.ctc-posml": ["pml"],
        "application/vnd.cups-ppd": ["ppd"],
        "application/vnd.curl.car": ["car"],
        "application/vnd.curl.pcurl": ["pcurl"],
        "application/vnd.dart": ["dart"],
        "application/vnd.data-vision.rdz": ["rdz"],
        "application/vnd.dbf": ["dbf"],
        "application/vnd.dece.data": ["uvf", "uvvf", "uvd", "uvvd"],
        "application/vnd.dece.ttml+xml": ["uvt", "uvvt"],
        "application/vnd.dece.unspecified": ["uvx", "uvvx"],
        "application/vnd.dece.zip": ["uvz", "uvvz"],
        "application/vnd.denovo.fcselayout-link": ["fe_launch"],
        "application/vnd.dna": ["dna"],
        "application/vnd.dolby.mlp": ["mlp"],
        "application/vnd.dpgraph": ["dpg"],
        "application/vnd.dreamfactory": ["dfac"],
        "application/vnd.ds-keypoint": ["kpxx"],
        "application/vnd.dvb.ait": ["ait"],
        "application/vnd.dvb.service": ["svc"],
        "application/vnd.dynageo": ["geo"],
        "application/vnd.ecowin.chart": ["mag"],
        "application/vnd.enliven": ["nml"],
        "application/vnd.epson.esf": ["esf"],
        "application/vnd.epson.msf": ["msf"],
        "application/vnd.epson.quickanime": ["qam"],
        "application/vnd.epson.salt": ["slt"],
        "application/vnd.epson.ssf": ["ssf"],
        "application/vnd.eszigno3+xml": ["es3", "et3"],
        "application/vnd.ezpix-album": ["ez2"],
        "application/vnd.ezpix-package": ["ez3"],
        "application/vnd.fdf": ["fdf"],
        "application/vnd.fdsn.mseed": ["mseed"],
        "application/vnd.fdsn.seed": ["seed", "dataless"],
        "application/vnd.flographit": ["gph"],
        "application/vnd.fluxtime.clip": ["ftc"],
        "application/vnd.framemaker": ["fm", "frame", "maker", "book"],
        "application/vnd.frogans.fnc": ["fnc"],
        "application/vnd.frogans.ltf": ["ltf"],
        "application/vnd.fsc.weblaunch": ["fsc"],
        "application/vnd.fujitsu.oasys": ["oas"],
        "application/vnd.fujitsu.oasys2": ["oa2"],
        "application/vnd.fujitsu.oasys3": ["oa3"],
        "application/vnd.fujitsu.oasysgp": ["fg5"],
        "application/vnd.fujitsu.oasysprs": ["bh2"],
        "application/vnd.fujixerox.ddd": ["ddd"],
        "application/vnd.fujixerox.docuworks": ["xdw"],
        "application/vnd.fujixerox.docuworks.binder": ["xbd"],
        "application/vnd.fuzzysheet": ["fzs"],
        "application/vnd.genomatix.tuxedo": ["txd"],
        "application/vnd.geogebra.file": ["ggb"],
        "application/vnd.geogebra.tool": ["ggt"],
        "application/vnd.geometry-explorer": ["gex", "gre"],
        "application/vnd.geonext": ["gxt"],
        "application/vnd.geoplan": ["g2w"],
        "application/vnd.geospace": ["g3w"],
        "application/vnd.gmx": ["gmx"],
        "application/vnd.google-apps.document": ["gdoc"],
        "application/vnd.google-apps.presentation": ["gslides"],
        "application/vnd.google-apps.spreadsheet": ["gsheet"],
        "application/vnd.google-earth.kml+xml": ["kml"],
        "application/vnd.google-earth.kmz": ["kmz"],
        "application/vnd.grafeq": ["gqf", "gqs"],
        "application/vnd.groove-account": ["gac"],
        "application/vnd.groove-help": ["ghf"],
        "application/vnd.groove-identity-message": ["gim"],
        "application/vnd.groove-injector": ["grv"],
        "application/vnd.groove-tool-message": ["gtm"],
        "application/vnd.groove-tool-template": ["tpl"],
        "application/vnd.groove-vcard": ["vcg"],
        "application/vnd.hal+xml": ["hal"],
        "application/vnd.handheld-entertainment+xml": ["zmm"],
        "application/vnd.hbci": ["hbci"],
        "application/vnd.hhe.lesson-player": ["les"],
        "application/vnd.hp-hpgl": ["hpgl"],
        "application/vnd.hp-hpid": ["hpid"],
        "application/vnd.hp-hps": ["hps"],
        "application/vnd.hp-jlyt": ["jlt"],
        "application/vnd.hp-pcl": ["pcl"],
        "application/vnd.hp-pclxl": ["pclxl"],
        "application/vnd.hydrostatix.sof-data": ["sfd-hdstx"],
        "application/vnd.ibm.minipay": ["mpy"],
        "application/vnd.ibm.modcap": ["afp", "listafp", "list3820"],
        "application/vnd.ibm.rights-management": ["irm"],
        "application/vnd.ibm.secure-container": ["sc"],
        "application/vnd.iccprofile": ["icc", "icm"],
        "application/vnd.igloader": ["igl"],
        "application/vnd.immervision-ivp": ["ivp"],
        "application/vnd.immervision-ivu": ["ivu"],
        "application/vnd.insors.igm": ["igm"],
        "application/vnd.intercon.formnet": ["xpw", "xpx"],
        "application/vnd.intergeo": ["i2g"],
        "application/vnd.intu.qbo": ["qbo"],
        "application/vnd.intu.qfx": ["qfx"],
        "application/vnd.ipunplugged.rcprofile": ["rcprofile"],
        "application/vnd.irepository.package+xml": ["irp"],
        "application/vnd.is-xpr": ["xpr"],
        "application/vnd.isac.fcs": ["fcs"],
        "application/vnd.jam": ["jam"],
        "application/vnd.jcp.javame.midlet-rms": ["rms"],
        "application/vnd.jisp": ["jisp"],
        "application/vnd.joost.joda-archive": ["joda"],
        "application/vnd.kahootz": ["ktz", "ktr"],
        "application/vnd.kde.karbon": ["karbon"],
        "application/vnd.kde.kchart": ["chrt"],
        "application/vnd.kde.kformula": ["kfo"],
        "application/vnd.kde.kivio": ["flw"],
        "application/vnd.kde.kontour": ["kon"],
        "application/vnd.kde.kpresenter": ["kpr", "kpt"],
        "application/vnd.kde.kspread": ["ksp"],
        "application/vnd.kde.kword": ["kwd", "kwt"],
        "application/vnd.kenameaapp": ["htke"],
        "application/vnd.kidspiration": ["kia"],
        "application/vnd.kinar": ["kne", "knp"],
        "application/vnd.koan": ["skp", "skd", "skt", "skm"],
        "application/vnd.kodak-descriptor": ["sse"],
        "application/vnd.las.las+xml": ["lasxml"],
        "application/vnd.llamagraphics.life-balance.desktop": ["lbd"],
        "application/vnd.llamagraphics.life-balance.exchange+xml": ["lbe"],
        "application/vnd.lotus-1-2-3": ["123"],
        "application/vnd.lotus-approach": ["apr"],
        "application/vnd.lotus-freelance": ["pre"],
        "application/vnd.lotus-notes": ["nsf"],
        "application/vnd.lotus-organizer": ["org"],
        "application/vnd.lotus-screencam": ["scm"],
        "application/vnd.lotus-wordpro": ["lwp"],
        "application/vnd.macports.portpkg": ["portpkg"],
        "application/vnd.mapbox-vector-tile": ["mvt"],
        "application/vnd.mcd": ["mcd"],
        "application/vnd.medcalcdata": ["mc1"],
        "application/vnd.mediastation.cdkey": ["cdkey"],
        "application/vnd.mfer": ["mwf"],
        "application/vnd.mfmp": ["mfm"],
        "application/vnd.micrografx.flo": ["flo"],
        "application/vnd.micrografx.igx": ["igx"],
        "application/vnd.mif": ["mif"],
        "application/vnd.mobius.daf": ["daf"],
        "application/vnd.mobius.dis": ["dis"],
        "application/vnd.mobius.mbk": ["mbk"],
        "application/vnd.mobius.mqy": ["mqy"],
        "application/vnd.mobius.msl": ["msl"],
        "application/vnd.mobius.plc": ["plc"],
        "application/vnd.mobius.txf": ["txf"],
        "application/vnd.mophun.application": ["mpn"],
        "application/vnd.mophun.certificate": ["mpc"],
        "application/vnd.mozilla.xul+xml": ["xul"],
        "application/vnd.ms-artgalry": ["cil"],
        "application/vnd.ms-cab-compressed": ["cab"],
        "application/vnd.ms-excel": ["xls", "xlm", "xla", "xlc", "xlt", "xlw"],
        "application/vnd.ms-excel.addin.macroenabled.12": ["xlam"],
        "application/vnd.ms-excel.sheet.binary.macroenabled.12": ["xlsb"],
        "application/vnd.ms-excel.sheet.macroenabled.12": ["xlsm"],
        "application/vnd.ms-excel.template.macroenabled.12": ["xltm"],
        "application/vnd.ms-fontobject": ["eot"],
        "application/vnd.ms-htmlhelp": ["chm"],
        "application/vnd.ms-ims": ["ims"],
        "application/vnd.ms-lrm": ["lrm"],
        "application/vnd.ms-officetheme": ["thmx"],
        "application/vnd.ms-outlook": ["msg"],
        "application/vnd.ms-pki.seccat": ["cat"],
        "application/vnd.ms-pki.stl": ["*stl"],
        "application/vnd.ms-powerpoint": ["ppt", "pps", "pot"],
        "application/vnd.ms-powerpoint.addin.macroenabled.12": ["ppam"],
        "application/vnd.ms-powerpoint.presentation.macroenabled.12": ["pptm"],
        "application/vnd.ms-powerpoint.slide.macroenabled.12": ["sldm"],
        "application/vnd.ms-powerpoint.slideshow.macroenabled.12": ["ppsm"],
        "application/vnd.ms-powerpoint.template.macroenabled.12": ["potm"],
        "application/vnd.ms-project": ["mpp", "mpt"],
        "application/vnd.ms-word.document.macroenabled.12": ["docm"],
        "application/vnd.ms-word.template.macroenabled.12": ["dotm"],
        "application/vnd.ms-works": ["wps", "wks", "wcm", "wdb"],
        "application/vnd.ms-wpl": ["wpl"],
        "application/vnd.ms-xpsdocument": ["xps"],
        "application/vnd.mseq": ["mseq"],
        "application/vnd.musician": ["mus"],
        "application/vnd.muvee.style": ["msty"],
        "application/vnd.mynfc": ["taglet"],
        "application/vnd.neurolanguage.nlu": ["nlu"],
        "application/vnd.nitf": ["ntf", "nitf"],
        "application/vnd.noblenet-directory": ["nnd"],
        "application/vnd.noblenet-sealer": ["nns"],
        "application/vnd.noblenet-web": ["nnw"],
        "application/vnd.nokia.n-gage.ac+xml": ["*ac"],
        "application/vnd.nokia.n-gage.data": ["ngdat"],
        "application/vnd.nokia.n-gage.symbian.install": ["n-gage"],
        "application/vnd.nokia.radio-preset": ["rpst"],
        "application/vnd.nokia.radio-presets": ["rpss"],
        "application/vnd.novadigm.edm": ["edm"],
        "application/vnd.novadigm.edx": ["edx"],
        "application/vnd.novadigm.ext": ["ext"],
        "application/vnd.oasis.opendocument.chart": ["odc"],
        "application/vnd.oasis.opendocument.chart-template": ["otc"],
        "application/vnd.oasis.opendocument.database": ["odb"],
        "application/vnd.oasis.opendocument.formula": ["odf"],
        "application/vnd.oasis.opendocument.formula-template": ["odft"],
        "application/vnd.oasis.opendocument.graphics": ["odg"],
        "application/vnd.oasis.opendocument.graphics-template": ["otg"],
        "application/vnd.oasis.opendocument.image": ["odi"],
        "application/vnd.oasis.opendocument.image-template": ["oti"],
        "application/vnd.oasis.opendocument.presentation": ["odp"],
        "application/vnd.oasis.opendocument.presentation-template": ["otp"],
        "application/vnd.oasis.opendocument.spreadsheet": ["ods"],
        "application/vnd.oasis.opendocument.spreadsheet-template": ["ots"],
        "application/vnd.oasis.opendocument.text": ["odt"],
        "application/vnd.oasis.opendocument.text-master": ["odm"],
        "application/vnd.oasis.opendocument.text-template": ["ott"],
        "application/vnd.oasis.opendocument.text-web": ["oth"],
        "application/vnd.olpc-sugar": ["xo"],
        "application/vnd.oma.dd2+xml": ["dd2"],
        "application/vnd.openblox.game+xml": ["obgx"],
        "application/vnd.openofficeorg.extension": ["oxt"],
        "application/vnd.openstreetmap.data+xml": ["osm"],
        "application/vnd.openxmlformats-officedocument.presentationml.presentation": ["pptx"],
        "application/vnd.openxmlformats-officedocument.presentationml.slide": ["sldx"],
        "application/vnd.openxmlformats-officedocument.presentationml.slideshow": ["ppsx"],
        "application/vnd.openxmlformats-officedocument.presentationml.template": ["potx"],
        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": ["xlsx"],
        "application/vnd.openxmlformats-officedocument.spreadsheetml.template": ["xltx"],
        "application/vnd.openxmlformats-officedocument.wordprocessingml.document": ["docx"],
        "application/vnd.openxmlformats-officedocument.wordprocessingml.template": ["dotx"],
        "application/vnd.osgeo.mapguide.package": ["mgp"],
        "application/vnd.osgi.dp": ["dp"],
        "application/vnd.osgi.subsystem": ["esa"],
        "application/vnd.palm": ["pdb", "pqa", "oprc"],
        "application/vnd.pawaafile": ["paw"],
        "application/vnd.pg.format": ["str"],
        "application/vnd.pg.osasli": ["ei6"],
        "application/vnd.picsel": ["efif"],
        "application/vnd.pmi.widget": ["wg"],
        "application/vnd.pocketlearn": ["plf"],
        "application/vnd.powerbuilder6": ["pbd"],
        "application/vnd.previewsystems.box": ["box"],
        "application/vnd.proteus.magazine": ["mgz"],
        "application/vnd.publishare-delta-tree": ["qps"],
        "application/vnd.pvi.ptid1": ["ptid"],
        "application/vnd.quark.quarkxpress": ["qxd", "qxt", "qwd", "qwt", "qxl", "qxb"],
        "application/vnd.rar": ["rar"],
        "application/vnd.realvnc.bed": ["bed"],
        "application/vnd.recordare.musicxml": ["mxl"],
        "application/vnd.recordare.musicxml+xml": ["musicxml"],
        "application/vnd.rig.cryptonote": ["cryptonote"],
        "application/vnd.rim.cod": ["cod"],
        "application/vnd.rn-realmedia": ["rm"],
        "application/vnd.rn-realmedia-vbr": ["rmvb"],
        "application/vnd.route66.link66+xml": ["link66"],
        "application/vnd.sailingtracker.track": ["st"],
        "application/vnd.seemail": ["see"],
        "application/vnd.sema": ["sema"],
        "application/vnd.semd": ["semd"],
        "application/vnd.semf": ["semf"],
        "application/vnd.shana.informed.formdata": ["ifm"],
        "application/vnd.shana.informed.formtemplate": ["itp"],
        "application/vnd.shana.informed.interchange": ["iif"],
        "application/vnd.shana.informed.package": ["ipk"],
        "application/vnd.simtech-mindmapper": ["twd", "twds"],
        "application/vnd.smaf": ["mmf"],
        "application/vnd.smart.teacher": ["teacher"],
        "application/vnd.software602.filler.form+xml": ["fo"],
        "application/vnd.solent.sdkm+xml": ["sdkm", "sdkd"],
        "application/vnd.spotfire.dxp": ["dxp"],
        "application/vnd.spotfire.sfs": ["sfs"],
        "application/vnd.stardivision.calc": ["sdc"],
        "application/vnd.stardivision.draw": ["sda"],
        "application/vnd.stardivision.impress": ["sdd"],
        "application/vnd.stardivision.math": ["smf"],
        "application/vnd.stardivision.writer": ["sdw", "vor"],
        "application/vnd.stardivision.writer-global": ["sgl"],
        "application/vnd.stepmania.package": ["smzip"],
        "application/vnd.stepmania.stepchart": ["sm"],
        "application/vnd.sun.wadl+xml": ["wadl"],
        "application/vnd.sun.xml.calc": ["sxc"],
        "application/vnd.sun.xml.calc.template": ["stc"],
        "application/vnd.sun.xml.draw": ["sxd"],
        "application/vnd.sun.xml.draw.template": ["std"],
        "application/vnd.sun.xml.impress": ["sxi"],
        "application/vnd.sun.xml.impress.template": ["sti"],
        "application/vnd.sun.xml.math": ["sxm"],
        "application/vnd.sun.xml.writer": ["sxw"],
        "application/vnd.sun.xml.writer.global": ["sxg"],
        "application/vnd.sun.xml.writer.template": ["stw"],
        "application/vnd.sus-calendar": ["sus", "susp"],
        "application/vnd.svd": ["svd"],
        "application/vnd.symbian.install": ["sis", "sisx"],
        "application/vnd.syncml+xml": ["xsm"],
        "application/vnd.syncml.dm+wbxml": ["bdm"],
        "application/vnd.syncml.dm+xml": ["xdm"],
        "application/vnd.syncml.dmddf+xml": ["ddf"],
        "application/vnd.tao.intent-module-archive": ["tao"],
        "application/vnd.tcpdump.pcap": ["pcap", "cap", "dmp"],
        "application/vnd.tmobile-livetv": ["tmo"],
        "application/vnd.trid.tpt": ["tpt"],
        "application/vnd.triscape.mxs": ["mxs"],
        "application/vnd.trueapp": ["tra"],
        "application/vnd.ufdl": ["ufd", "ufdl"],
        "application/vnd.uiq.theme": ["utz"],
        "application/vnd.umajin": ["umj"],
        "application/vnd.unity": ["unityweb"],
        "application/vnd.uoml+xml": ["uoml"],
        "application/vnd.vcx": ["vcx"],
        "application/vnd.visio": ["vsd", "vst", "vss", "vsw"],
        "application/vnd.visionary": ["vis"],
        "application/vnd.vsf": ["vsf"],
        "application/vnd.wap.wbxml": ["wbxml"],
        "application/vnd.wap.wmlc": ["wmlc"],
        "application/vnd.wap.wmlscriptc": ["wmlsc"],
        "application/vnd.webturbo": ["wtb"],
        "application/vnd.wolfram.player": ["nbp"],
        "application/vnd.wordperfect": ["wpd"],
        "application/vnd.wqd": ["wqd"],
        "application/vnd.wt.stf": ["stf"],
        "application/vnd.xara": ["xar"],
        "application/vnd.xfdl": ["xfdl"],
        "application/vnd.yamaha.hv-dic": ["hvd"],
        "application/vnd.yamaha.hv-script": ["hvs"],
        "application/vnd.yamaha.hv-voice": ["hvp"],
        "application/vnd.yamaha.openscoreformat": ["osf"],
        "application/vnd.yamaha.openscoreformat.osfpvg+xml": ["osfpvg"],
        "application/vnd.yamaha.smaf-audio": ["saf"],
        "application/vnd.yamaha.smaf-phrase": ["spf"],
        "application/vnd.yellowriver-custom-menu": ["cmp"],
        "application/vnd.zul": ["zir", "zirz"],
        "application/vnd.zzazz.deck+xml": ["zaz"],
        "application/x-7z-compressed": ["7z"],
        "application/x-abiword": ["abw"],
        "application/x-ace-compressed": ["ace"],
        "application/x-apple-diskimage": ["*dmg"],
        "application/x-arj": ["arj"],
        "application/x-authorware-bin": ["aab", "x32", "u32", "vox"],
        "application/x-authorware-map": ["aam"],
        "application/x-authorware-seg": ["aas"],
        "application/x-bcpio": ["bcpio"],
        "application/x-bdoc": ["*bdoc"],
        "application/x-bittorrent": ["torrent"],
        "application/x-blorb": ["blb", "blorb"],
        "application/x-bzip": ["bz"],
        "application/x-bzip2": ["bz2", "boz"],
        "application/x-cbr": ["cbr", "cba", "cbt", "cbz", "cb7"],
        "application/x-cdlink": ["vcd"],
        "application/x-cfs-compressed": ["cfs"],
        "application/x-chat": ["chat"],
        "application/x-chess-pgn": ["pgn"],
        "application/x-chrome-extension": ["crx"],
        "application/x-cocoa": ["cco"],
        "application/x-conference": ["nsc"],
        "application/x-cpio": ["cpio"],
        "application/x-csh": ["csh"],
        "application/x-debian-package": ["*deb", "udeb"],
        "application/x-dgc-compressed": ["dgc"],
        "application/x-director": ["dir", "dcr", "dxr", "cst", "cct", "cxt", "w3d", "fgd", "swa"],
        "application/x-doom": ["wad"],
        "application/x-dtbncx+xml": ["ncx"],
        "application/x-dtbook+xml": ["dtb"],
        "application/x-dtbresource+xml": ["res"],
        "application/x-dvi": ["dvi"],
        "application/x-envoy": ["evy"],
        "application/x-eva": ["eva"],
        "application/x-font-bdf": ["bdf"],
        "application/x-font-ghostscript": ["gsf"],
        "application/x-font-linux-psf": ["psf"],
        "application/x-font-pcf": ["pcf"],
        "application/x-font-snf": ["snf"],
        "application/x-font-type1": ["pfa", "pfb", "pfm", "afm"],
        "application/x-freearc": ["arc"],
        "application/x-futuresplash": ["spl"],
        "application/x-gca-compressed": ["gca"],
        "application/x-glulx": ["ulx"],
        "application/x-gnumeric": ["gnumeric"],
        "application/x-gramps-xml": ["gramps"],
        "application/x-gtar": ["gtar"],
        "application/x-hdf": ["hdf"],
        "application/x-httpd-php": ["php"],
        "application/x-install-instructions": ["install"],
        "application/x-iso9660-image": ["*iso"],
        "application/x-iwork-keynote-sffkey": ["*key"],
        "application/x-iwork-numbers-sffnumbers": ["*numbers"],
        "application/x-iwork-pages-sffpages": ["*pages"],
        "application/x-java-archive-diff": ["jardiff"],
        "application/x-java-jnlp-file": ["jnlp"],
        "application/x-keepass2": ["kdbx"],
        "application/x-latex": ["latex"],
        "application/x-lua-bytecode": ["luac"],
        "application/x-lzh-compressed": ["lzh", "lha"],
        "application/x-makeself": ["run"],
        "application/x-mie": ["mie"],
        "application/x-mobipocket-ebook": ["prc", "mobi"],
        "application/x-ms-application": ["application"],
        "application/x-ms-shortcut": ["lnk"],
        "application/x-ms-wmd": ["wmd"],
        "application/x-ms-wmz": ["wmz"],
        "application/x-ms-xbap": ["xbap"],
        "application/x-msaccess": ["mdb"],
        "application/x-msbinder": ["obd"],
        "application/x-mscardfile": ["crd"],
        "application/x-msclip": ["clp"],
        "application/x-msdos-program": ["*exe"],
        "application/x-msdownload": ["*exe", "*dll", "com", "bat", "*msi"],
        "application/x-msmediaview": ["mvb", "m13", "m14"],
        "application/x-msmetafile": ["*wmf", "*wmz", "*emf", "emz"],
        "application/x-msmoney": ["mny"],
        "application/x-mspublisher": ["pub"],
        "application/x-msschedule": ["scd"],
        "application/x-msterminal": ["trm"],
        "application/x-mswrite": ["wri"],
        "application/x-netcdf": ["nc", "cdf"],
        "application/x-ns-proxy-autoconfig": ["pac"],
        "application/x-nzb": ["nzb"],
        "application/x-perl": ["pl", "pm"],
        "application/x-pilot": ["*prc", "*pdb"],
        "application/x-pkcs12": ["p12", "pfx"],
        "application/x-pkcs7-certificates": ["p7b", "spc"],
        "application/x-pkcs7-certreqresp": ["p7r"],
        "application/x-rar-compressed": ["*rar"],
        "application/x-redhat-package-manager": ["rpm"],
        "application/x-research-info-systems": ["ris"],
        "application/x-sea": ["sea"],
        "application/x-sh": ["sh"],
        "application/x-shar": ["shar"],
        "application/x-shockwave-flash": ["swf"],
        "application/x-silverlight-app": ["xap"],
        "application/x-sql": ["sql"],
        "application/x-stuffit": ["sit"],
        "application/x-stuffitx": ["sitx"],
        "application/x-subrip": ["srt"],
        "application/x-sv4cpio": ["sv4cpio"],
        "application/x-sv4crc": ["sv4crc"],
        "application/x-t3vm-image": ["t3"],
        "application/x-tads": ["gam"],
        "application/x-tar": ["tar"],
        "application/x-tcl": ["tcl", "tk"],
        "application/x-tex": ["tex"],
        "application/x-tex-tfm": ["tfm"],
        "application/x-texinfo": ["texinfo", "texi"],
        "application/x-tgif": ["*obj"],
        "application/x-ustar": ["ustar"],
        "application/x-virtualbox-hdd": ["hdd"],
        "application/x-virtualbox-ova": ["ova"],
        "application/x-virtualbox-ovf": ["ovf"],
        "application/x-virtualbox-vbox": ["vbox"],
        "application/x-virtualbox-vbox-extpack": ["vbox-extpack"],
        "application/x-virtualbox-vdi": ["vdi"],
        "application/x-virtualbox-vhd": ["vhd"],
        "application/x-virtualbox-vmdk": ["vmdk"],
        "application/x-wais-source": ["src"],
        "application/x-web-app-manifest+json": ["webapp"],
        "application/x-x509-ca-cert": ["der", "crt", "pem"],
        "application/x-xfig": ["fig"],
        "application/x-xliff+xml": ["*xlf"],
        "application/x-xpinstall": ["xpi"],
        "application/x-xz": ["xz"],
        "application/x-zmachine": ["z1", "z2", "z3", "z4", "z5", "z6", "z7", "z8"],
        "audio/vnd.dece.audio": ["uva", "uvva"],
        "audio/vnd.digital-winds": ["eol"],
        "audio/vnd.dra": ["dra"],
        "audio/vnd.dts": ["dts"],
        "audio/vnd.dts.hd": ["dtshd"],
        "audio/vnd.lucent.voice": ["lvp"],
        "audio/vnd.ms-playready.media.pya": ["pya"],
        "audio/vnd.nuera.ecelp4800": ["ecelp4800"],
        "audio/vnd.nuera.ecelp7470": ["ecelp7470"],
        "audio/vnd.nuera.ecelp9600": ["ecelp9600"],
        "audio/vnd.rip": ["rip"],
        "audio/x-aac": ["aac"],
        "audio/x-aiff": ["aif", "aiff", "aifc"],
        "audio/x-caf": ["caf"],
        "audio/x-flac": ["flac"],
        "audio/x-m4a": ["*m4a"],
        "audio/x-matroska": ["mka"],
        "audio/x-mpegurl": ["m3u"],
        "audio/x-ms-wax": ["wax"],
        "audio/x-ms-wma": ["wma"],
        "audio/x-pn-realaudio": ["ram", "ra"],
        "audio/x-pn-realaudio-plugin": ["rmp"],
        "audio/x-realaudio": ["*ra"],
        "audio/x-wav": ["*wav"],
        "chemical/x-cdx": ["cdx"],
        "chemical/x-cif": ["cif"],
        "chemical/x-cmdf": ["cmdf"],
        "chemical/x-cml": ["cml"],
        "chemical/x-csml": ["csml"],
        "chemical/x-xyz": ["xyz"],
        "image/prs.btif": ["btif"],
        "image/prs.pti": ["pti"],
        "image/vnd.adobe.photoshop": ["psd"],
        "image/vnd.airzip.accelerator.azv": ["azv"],
        "image/vnd.dece.graphic": ["uvi", "uvvi", "uvg", "uvvg"],
        "image/vnd.djvu": ["djvu", "djv"],
        "image/vnd.dvb.subtitle": ["*sub"],
        "image/vnd.dwg": ["dwg"],
        "image/vnd.dxf": ["dxf"],
        "image/vnd.fastbidsheet": ["fbs"],
        "image/vnd.fpx": ["fpx"],
        "image/vnd.fst": ["fst"],
        "image/vnd.fujixerox.edmics-mmr": ["mmr"],
        "image/vnd.fujixerox.edmics-rlc": ["rlc"],
        "image/vnd.microsoft.icon": ["ico"],
        "image/vnd.ms-dds": ["dds"],
        "image/vnd.ms-modi": ["mdi"],
        "image/vnd.ms-photo": ["wdp"],
        "image/vnd.net-fpx": ["npx"],
        "image/vnd.pco.b16": ["b16"],
        "image/vnd.tencent.tap": ["tap"],
        "image/vnd.valve.source.texture": ["vtf"],
        "image/vnd.wap.wbmp": ["wbmp"],
        "image/vnd.xiff": ["xif"],
        "image/vnd.zbrush.pcx": ["pcx"],
        "image/x-3ds": ["3ds"],
        "image/x-cmu-raster": ["ras"],
        "image/x-cmx": ["cmx"],
        "image/x-freehand": ["fh", "fhc", "fh4", "fh5", "fh7"],
        "image/x-icon": ["*ico"],
        "image/x-jng": ["jng"],
        "image/x-mrsid-image": ["sid"],
        "image/x-ms-bmp": ["*bmp"],
        "image/x-pcx": ["*pcx"],
        "image/x-pict": ["pic", "pct"],
        "image/x-portable-anymap": ["pnm"],
        "image/x-portable-bitmap": ["pbm"],
        "image/x-portable-graymap": ["pgm"],
        "image/x-portable-pixmap": ["ppm"],
        "image/x-rgb": ["rgb"],
        "image/x-tga": ["tga"],
        "image/x-xbitmap": ["xbm"],
        "image/x-xpixmap": ["xpm"],
        "image/x-xwindowdump": ["xwd"],
        "message/vnd.wfa.wsc": ["wsc"],
        "model/vnd.collada+xml": ["dae"],
        "model/vnd.dwf": ["dwf"],
        "model/vnd.gdl": ["gdl"],
        "model/vnd.gtw": ["gtw"],
        "model/vnd.mts": ["mts"],
        "model/vnd.opengex": ["ogex"],
        "model/vnd.parasolid.transmit.binary": ["x_b"],
        "model/vnd.parasolid.transmit.text": ["x_t"],
        "model/vnd.sap.vds": ["vds"],
        "model/vnd.usdz+zip": ["usdz"],
        "model/vnd.valve.source.compiled-map": ["bsp"],
        "model/vnd.vtu": ["vtu"],
        "text/prs.lines.tag": ["dsc"],
        "text/vnd.curl": ["curl"],
        "text/vnd.curl.dcurl": ["dcurl"],
        "text/vnd.curl.mcurl": ["mcurl"],
        "text/vnd.curl.scurl": ["scurl"],
        "text/vnd.dvb.subtitle": ["sub"],
        "text/vnd.fly": ["fly"],
        "text/vnd.fmi.flexstor": ["flx"],
        "text/vnd.graphviz": ["gv"],
        "text/vnd.in3d.3dml": ["3dml"],
        "text/vnd.in3d.spot": ["spot"],
        "text/vnd.sun.j2me.app-descriptor": ["jad"],
        "text/vnd.wap.wml": ["wml"],
        "text/vnd.wap.wmlscript": ["wmls"],
        "text/x-asm": ["s", "asm"],
        "text/x-c": ["c", "cc", "cxx", "cpp", "h", "hh", "dic"],
        "text/x-component": ["htc"],
        "text/x-fortran": ["f", "for", "f77", "f90"],
        "text/x-handlebars-template": ["hbs"],
        "text/x-java-source": ["java"],
        "text/x-lua": ["lua"],
        "text/x-markdown": ["mkd"],
        "text/x-nfo": ["nfo"],
        "text/x-opml": ["opml"],
        "text/x-org": ["*org"],
        "text/x-pascal": ["p", "pas"],
        "text/x-processing": ["pde"],
        "text/x-sass": ["sass"],
        "text/x-scss": ["scss"],
        "text/x-setext": ["etx"],
        "text/x-sfv": ["sfv"],
        "text/x-suse-ymp": ["ymp"],
        "text/x-uuencode": ["uu"],
        "text/x-vcalendar": ["vcs"],
        "text/x-vcard": ["vcf"],
        "video/vnd.dece.hd": ["uvh", "uvvh"],
        "video/vnd.dece.mobile": ["uvm", "uvvm"],
        "video/vnd.dece.pd": ["uvp", "uvvp"],
        "video/vnd.dece.sd": ["uvs", "uvvs"],
        "video/vnd.dece.video": ["uvv", "uvvv"],
        "video/vnd.dvb.file": ["dvb"],
        "video/vnd.fvt": ["fvt"],
        "video/vnd.mpegurl": ["mxu", "m4u"],
        "video/vnd.ms-playready.media.pyv": ["pyv"],
        "video/vnd.uvvu.mp4": ["uvu", "uvvu"],
        "video/vnd.vivo": ["viv"],
        "video/x-f4v": ["f4v"],
        "video/x-fli": ["fli"],
        "video/x-flv": ["flv"],
        "video/x-m4v": ["m4v"],
        "video/x-matroska": ["mkv", "mk3d", "mks"],
        "video/x-mng": ["mng"],
        "video/x-ms-asf": ["asf", "asx"],
        "video/x-ms-vob": ["vob"],
        "video/x-ms-wm": ["wm"],
        "video/x-ms-wmv": ["wmv"],
        "video/x-ms-wmx": ["wmx"],
        "video/x-ms-wvx": ["wvx"],
        "video/x-msvideo": ["avi"],
        "video/x-sgi-movie": ["movie"],
        "video/x-smv": ["smv"],
        "x-conference/x-cooltalk": ["ice"]
      }
    }, function (e, t, n) {
      function o() {
        /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */
        o = function () {
          return e
        };
        var e = {},
          t = Object.prototype,
          n = t.hasOwnProperty,
          i = Object.defineProperty || function (e, t, n) {
            e[t] = n.value
          },
          a = "function" == typeof Symbol ? Symbol : {},
          s = a.iterator || "@@iterator",
          c = a.asyncIterator || "@@asyncIterator",
          l = a.toStringTag || "@@toStringTag";

        function u(e, t, n) {
          return Object.defineProperty(e, t, {
            value: n,
            enumerable: !0,
            configurable: !0,
            writable: !0
          }), e[t]
        }
        try {
          u({}, "")
        } catch (R) {
          u = function (e, t, n) {
            return e[t] = n
          }
        }

        function d(e, t, n, o) {
          var r = t && t.prototype instanceof h ? t : h,
            a = Object.create(r.prototype),
            s = new E(o || []);
          return i(a, "_invoke", {
            value: S(e, n, s)
          }), a
        }

        function p(e, t, n) {
          try {
            return {
              type: "normal",
              arg: e.call(t, n)
            }
          } catch (o) {
            return {
              type: "throw",
              arg: o
            }
          }
        }
        e.wrap = d;
        var f = {};

        function h() {}

        function m() {}

        function g() {}
        var y = {};
        u(y, s, (function () {
          return this
        }));
        var v = Object.getPrototypeOf,
          _ = v && v(v(T([])));
        _ && _ !== t && n.call(_, s) && (y = _);
        var x = g.prototype = h.prototype = Object.create(y);

        function k(e) {
          ["next", "throw", "return"].forEach((function (t) {
            u(e, t, (function (e) {
              return this._invoke(t, e)
            }))
          }))
        }

        function b(e, t) {
          function o(i, a, s, c) {
            var l = p(e[i], e, a);
            if ("throw" !== l.type) {
              var u = l.arg,
                d = u.value;
              return d && "object" == r(d) && n.call(d, "__await") ? t.resolve(d.__await).then((function (e) {
                o("next", e, s, c)
              }), (function (e) {
                o("throw", e, s, c)
              })) : t.resolve(d).then((function (e) {
                u.value = e, s(u)
              }), (function (e) {
                return o("throw", e, s, c)
              }))
            }
            c(l.arg)
          }
          var a;
          i(this, "_invoke", {
            value: function (e, n) {
              function r() {
                return new t((function (t, r) {
                  o(e, n, t, r)
                }))
              }
              return a = a ? a.then(r, r) : r()
            }
          })
        }

        function S(e, t, n) {
          var o = "suspendedStart";
          return function (r, i) {
            if ("executing" === o) throw new Error("Generator is already running");
            if ("completed" === o) {
              if ("throw" === r) throw i;
              return {
                value: void 0,
                done: !0
              }
            }
            for (n.method = r, n.arg = i;;) {
              var a = n.delegate;
              if (a) {
                var s = O(a, n);
                if (s) {
                  if (s === f) continue;
                  return s
                }
              }
              if ("next" === n.method) n.sent = n._sent = n.arg;
              else if ("throw" === n.method) {
                if ("suspendedStart" === o) throw o = "completed", n.arg;
                n.dispatchException(n.arg)
              } else "return" === n.method && n.abrupt("return", n.arg);
              o = "executing";
              var c = p(e, t, n);
              if ("normal" === c.type) {
                if (o = n.done ? "completed" : "suspendedYield", c.arg === f) continue;
                return {
                  value: c.arg,
                  done: n.done
                }
              }
              "throw" === c.type && (o = "completed", n.method = "throw", n.arg = c.arg)
            }
          }
        }

        function O(e, t) {
          var n = e.iterator[t.method];
          if (void 0 === n) {
            if (t.delegate = null, "throw" === t.method) {
              if (e.iterator.return && (t.method = "return", t.arg = void 0, O(e, t), "throw" === t.method)) return f;
              t.method = "throw", t.arg = new TypeError("The iterator does not provide a 'throw' method")
            }
            return f
          }
          var o = p(n, e.iterator, t.arg);
          if ("throw" === o.type) return t.method = "throw", t.arg = o.arg, t.delegate = null, f;
          var r = o.arg;
          return r ? r.done ? (t[e.resultName] = r.value, t.next = e.nextLoc, "return" !== t.method && (t.method = "next", t.arg = void 0), t.delegate = null, f) : r : (t.method = "throw", t.arg = new TypeError("iterator result is not an object"), t.delegate = null, f)
        }

        function C(e) {
          var t = {
            tryLoc: e[0]
          };
          1 in e && (t.catchLoc = e[1]), 2 in e && (t.finallyLoc = e[2], t.afterLoc = e[3]), this.tryEntries.push(t)
        }

        function w(e) {
          var t = e.completion || {};
          t.type = "normal", delete t.arg, e.completion = t
        }

        function E(e) {
          this.tryEntries = [{
            tryLoc: "root"
          }], e.forEach(C, this), this.reset(!0)
        }

        function T(e) {
          if (e) {
            var t = e[s];
            if (t) return t.call(e);
            if ("function" == typeof e.next) return e;
            if (!isNaN(e.length)) {
              var o = -1,
                r = function t() {
                  for (; ++o < e.length;)
                    if (n.call(e, o)) return t.value = e[o], t.done = !1, t;
                  return t.value = void 0, t.done = !0, t
                };
              return r.next = r
            }
          }
          return {
            next: A
          }
        }

        function A() {
          return {
            value: void 0,
            done: !0
          }
        }
        return m.prototype = g, i(x, "constructor", {
          value: g,
          configurable: !0
        }), i(g, "constructor", {
          value: m,
          configurable: !0
        }), m.displayName = u(g, l, "GeneratorFunction"), e.isGeneratorFunction = function (e) {
          var t = "function" == typeof e && e.constructor;
          return !!t && (t === m || "GeneratorFunction" === (t.displayName || t.name))
        }, e.mark = function (e) {
          return Object.setPrototypeOf ? Object.setPrototypeOf(e, g) : (e.__proto__ = g, u(e, l, "GeneratorFunction")), e.prototype = Object.create(x), e
        }, e.awrap = function (e) {
          return {
            __await: e
          }
        }, k(b.prototype), u(b.prototype, c, (function () {
          return this
        })), e.AsyncIterator = b, e.async = function (t, n, o, r, i) {
          void 0 === i && (i = Promise);
          var a = new b(d(t, n, o, r), i);
          return e.isGeneratorFunction(n) ? a : a.next().then((function (e) {
            return e.done ? e.value : a.next()
          }))
        }, k(x), u(x, l, "Generator"), u(x, s, (function () {
          return this
        })), u(x, "toString", (function () {
          return "[object Generator]"
        })), e.keys = function (e) {
          var t = Object(e),
            n = [];
          for (var o in t) n.push(o);
          return n.reverse(),
            function e() {
              for (; n.length;) {
                var o = n.pop();
                if (o in t) return e.value = o, e.done = !1, e
              }
              return e.done = !0, e
            }
        }, e.values = T, E.prototype = {
          constructor: E,
          reset: function (e) {
            if (this.prev = 0, this.next = 0, this.sent = this._sent = void 0, this.done = !1, this.delegate = null, this.method = "next", this.arg = void 0, this.tryEntries.forEach(w), !e)
              for (var t in this) "t" === t.charAt(0) && n.call(this, t) && !isNaN(+t.slice(1)) && (this[t] = void 0)
          },
          stop: function () {
            this.done = !0;
            var e = this.tryEntries[0].completion;
            if ("throw" === e.type) throw e.arg;
            return this.rval
          },
          dispatchException: function (e) {
            if (this.done) throw e;
            var t = this;

            function o(n, o) {
              return a.type = "throw", a.arg = e, t.next = n, o && (t.method = "next", t.arg = void 0), !!o
            }
            for (var r = this.tryEntries.length - 1; r >= 0; --r) {
              var i = this.tryEntries[r],
                a = i.completion;
              if ("root" === i.tryLoc) return o("end");
              if (i.tryLoc <= this.prev) {
                var s = n.call(i, "catchLoc"),
                  c = n.call(i, "finallyLoc");
                if (s && c) {
                  if (this.prev < i.catchLoc) return o(i.catchLoc, !0);
                  if (this.prev < i.finallyLoc) return o(i.finallyLoc)
                } else if (s) {
                  if (this.prev < i.catchLoc) return o(i.catchLoc, !0)
                } else {
                  if (!c) throw new Error("try statement without catch or finally");
                  if (this.prev < i.finallyLoc) return o(i.finallyLoc)
                }
              }
            }
          },
          abrupt: function (e, t) {
            for (var o = this.tryEntries.length - 1; o >= 0; --o) {
              var r = this.tryEntries[o];
              if (r.tryLoc <= this.prev && n.call(r, "finallyLoc") && this.prev < r.finallyLoc) {
                var i = r;
                break
              }
            }
            i && ("break" === e || "continue" === e) && i.tryLoc <= t && t <= i.finallyLoc && (i = null);
            var a = i ? i.completion : {};
            return a.type = e, a.arg = t, i ? (this.method = "next", this.next = i.finallyLoc, f) : this.complete(a)
          },
          complete: function (e, t) {
            if ("throw" === e.type) throw e.arg;
            return "break" === e.type || "continue" === e.type ? this.next = e.arg : "return" === e.type ? (this.rval = this.arg = e.arg, this.method = "return", this.next = "end") : "normal" === e.type && t && (this.next = t), f
          },
          finish: function (e) {
            for (var t = this.tryEntries.length - 1; t >= 0; --t) {
              var n = this.tryEntries[t];
              if (n.finallyLoc === e) return this.complete(n.completion, n.afterLoc), w(n), f
            }
          },
          catch: function (e) {
            for (var t = this.tryEntries.length - 1; t >= 0; --t) {
              var n = this.tryEntries[t];
              if (n.tryLoc === e) {
                var o = n.completion;
                if ("throw" === o.type) {
                  var r = o.arg;
                  w(n)
                }
                return r
              }
            }
            throw new Error("illegal catch attempt")
          },
          delegateYield: function (e, t, n) {
            return this.delegate = {
              iterator: T(e),
              resultName: t,
              nextLoc: n
            }, "next" === this.method && (this.arg = void 0), f
          }
        }, e
      }

      function r(e) {
        return (r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
          return typeof e
        } : function (e) {
          return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
        })(e)
      }

      function i(e, t, n, o, r, i, a) {
        try {
          var s = e[i](a),
            c = s.value
        } catch (l) {
          return void n(l)
        }
        s.done ? t(c) : Promise.resolve(c).then(o, r)
      }

      function a(e) {
        return function () {
          var t = this,
            n = arguments;
          return new Promise((function (o, r) {
            var a = e.apply(t, n);

            function s(e) {
              i(a, o, r, s, c, "next", e)
            }

            function c(e) {
              i(a, o, r, s, c, "throw", e)
            }
            s(void 0)
          }))
        }
      }
      var s = n(9),
        c = n(31),
        l = n(8).EventProxy,
        u = n(0),
        d = n(6);

      function p(e, t) {
        var n = e.TaskId,
          o = e.Bucket,
          r = e.Region,
          i = e.Key,
          a = e.StorageClass,
          d = this,
          p = {},
          m = e.FileSize,
          g = e.SliceSize,
          y = Math.ceil(m / g),
          v = 0,
          _ = u.throttleOnProgress.call(d, m, e.onHashProgress),
          x = new l;
        x.on("error", (function (e) {
          if (d._isRunningTask(n)) return t(e)
        })), x.on("upload_id_available", (function (e) {
          var n = {},
            o = [];
          u.each(e.PartList, (function (e) {
            n[e.PartNumber] = e
          }));
          for (var r = 1; r <= y; r++) {
            var i = n[r];
            i ? (i.PartNumber = r, i.Uploaded = !0) : i = {
              PartNumber: r,
              ETag: null,
              Uploaded: !1
            }, o.push(i)
          }
          e.PartList = o, t(null, e)
        })), x.on("no_available_upload_id", (function () {
          if (d._isRunningTask(n)) {
            var s = u.extend({
              Bucket: o,
              Region: r,
              Key: i,
              Headers: u.clone(e.Headers),
              Query: u.clone(e.Query),
              StorageClass: a,
              calledBySdk: "sliceUploadFile",
              tracker: e.tracker
            }, e);
            d.multipartInit(s, (function (e, o) {
              if (d._isRunningTask(n)) {
                if (e) return x.emit("error", e);
                var r = o.UploadId;
                if (!r) return t({
                  Message: "no upload id"
                });
                x.emit("upload_id_available", {
                  UploadId: r,
                  PartList: []
                })
              }
            }))
          }
        })), x.on("has_and_check_upload_id", (function (t) {
          t = t.reverse(), c.eachLimit(t, 1, (function (t, a) {
            d._isRunningTask(n) && (s.using[t] ? a() : h.call(d, {
              Bucket: o,
              Region: r,
              Key: i,
              UploadId: t,
              tracker: e.tracker
            }, (function (o, r) {
              if (d._isRunningTask(n)) {
                if (o) return s.removeUsing(t), x.emit("error", o);
                var i = r.PartList;
                i.forEach((function (e) {
                    e.PartNumber *= 1, e.Size *= 1, e.ETag = e.ETag || ""
                  })),
                  function (t, n) {
                    var o = t.length;
                    0 === o ? n(null, !0) : o > y || o > 1 && Math.max(t[0].Size, t[1].Size) !== g ? n(null, !1) : function r(i) {
                      if (i < o) {
                        var a = t[i];
                        s = a.PartNumber, c = function (e, t) {
                          t && t.ETag === a.ETag && t.Size === a.Size ? r(i + 1) : n(null, !1)
                        }, l = g * (s - 1), d = Math.min(l + g, m), f = d - l, p[s] ? c(0, {
                          PartNumber: s,
                          ETag: p[s],
                          Size: f
                        }) : u.fileSlice(e.FilePath, l, d, (function (e) {
                          try {
                            var t = u.getFileMd5(e)
                          } catch (o) {
                            return c()
                          }
                          var n = '"' + t + '"';
                          p[s] = n, v += f, c(0, {
                            PartNumber: s,
                            ETag: n,
                            Size: f
                          }), _({
                            loaded: v,
                            total: m
                          })
                        }))
                      } else n(null, !0);
                      var s, c, l, d, f
                    }(0)
                  }(i, (function (e, o) {
                    if (d._isRunningTask(n)) return e ? x.emit("error", e) : void(o ? a({
                      UploadId: t,
                      PartList: i
                    }) : a())
                  }))
              }
            })))
          }), (function (e) {
            d._isRunningTask(n) && (_(null, !0), e && e.UploadId ? x.emit("upload_id_available", e) : x.emit("no_available_upload_id"))
          }))
        })), x.on("seek_local_avail_upload_id", (function (t) {
          var a = s.getFileId(e.FileStat, e.ChunkSize, o, i),
            c = s.getUploadIdList(a);
          a && c ? function a(l) {
            if (l >= c.length) x.emit("has_and_check_upload_id", t);
            else {
              var p = c[l];
              if (!u.isInArray(t, p)) return s.removeUploadId(p), void a(l + 1);
              s.using[p] ? a(l + 1) : h.call(d, {
                Bucket: o,
                Region: r,
                Key: i,
                UploadId: p,
                tracker: e.tracker
              }, (function (e, t) {
                d._isRunningTask(n) && (e ? (s.removeUploadId(p), a(l + 1)) : x.emit("upload_id_available", {
                  UploadId: p,
                  PartList: t.PartList
                }))
              }))
            }
          }(0) : x.emit("has_and_check_upload_id", t)
        })), x.on("get_remote_upload_id_list", (function () {
          f.call(d, {
            Bucket: o,
            Region: r,
            Key: i,
            tracker: e.tracker
          }, (function (t, r) {
            if (d._isRunningTask(n)) {
              if (t) return x.emit("error", t);
              var c = u.filter(r.UploadList, (function (e) {
                return e.Key === i && (!a || e.StorageClass.toUpperCase() === a.toUpperCase())
              })).reverse().map((function (e) {
                return e.UploadId || e.UploadID
              }));
              if (c.length) x.emit("seek_local_avail_upload_id", c);
              else {
                var l, p = s.getFileId(e.FileStat, e.ChunkSize, o, i);
                p && (l = s.getUploadIdList(p)) && u.each(l, (function (e) {
                  s.removeUploadId(e)
                })), x.emit("no_available_upload_id")
              }
            }
          }))
        })), x.emit("get_remote_upload_id_list")
      }

      function f(e, t) {
        var n = this,
          o = [],
          r = {
            Bucket: e.Bucket,
            Region: e.Region,
            Prefix: e.Key,
            calledBySdk: e.calledBySdk || "sliceUploadFile",
            tracker: e.tracker
          };
        ! function e() {
          n.multipartList(r, (function (n, i) {
            if (n) return t(n);
            o.push.apply(o, i.Upload || []), "true" === i.IsTruncated ? (r.KeyMarker = i.NextKeyMarker, r.UploadIdMarker = i.NextUploadIdMarker, e()) : t(null, {
              UploadList: o
            })
          }))
        }()
      }

      function h(e, t) {
        var n = this,
          o = [],
          r = {
            Bucket: e.Bucket,
            Region: e.Region,
            Key: e.Key,
            UploadId: e.UploadId,
            calledBySdk: "sliceUploadFile",
            tracker: e.tracker
          };
        ! function e() {
          n.multipartListPart(r, (function (n, i) {
            if (n) return t(n);
            o.push.apply(o, i.Part || []), "true" === i.IsTruncated ? (r.PartNumberMarker = i.NextPartNumberMarker, e()) : t(null, {
              PartList: o
            })
          }))
        }()
      }

      function m(e, t) {
        var n = this,
          o = e.TaskId,
          r = e.Bucket,
          i = e.Region,
          a = e.Key,
          s = e.UploadData,
          l = e.FileSize,
          d = e.SliceSize,
          p = Math.min(e.AsyncLimit || n.options.ChunkParallelLimit || 1, 256),
          f = e.FilePath,
          h = Math.ceil(l / d),
          m = 0,
          y = e.ServerSideEncryption,
          v = u.filter(s.PartList, (function (e) {
            return e.Uploaded && (m += e.PartNumber >= h && l % d || d), !e.Uploaded
          })),
          _ = e.onProgress;
        c.eachLimit(v, p, (function (t, c) {
          if (n._isRunningTask(o)) {
            var u = t.PartNumber,
              p = Math.min(l, t.PartNumber * d) - (t.PartNumber - 1) * d,
              h = 0;
            g.call(n, {
              TaskId: o,
              Bucket: r,
              Region: i,
              Key: a,
              SliceSize: d,
              FileSize: l,
              PartNumber: u,
              ServerSideEncryption: y,
              FilePath: f,
              UploadData: s,
              onProgress: function (e) {
                m += e.loaded - h, h = e.loaded, _({
                  loaded: m,
                  total: l
                })
              },
              tracker: e.tracker
            }, (function (e, r) {
              n._isRunningTask(o) && (e ? m -= h : (m += p - h, t.ETag = r.ETag), _({
                loaded: m,
                total: l
              }), c(e || null, r))
            }))
          }
        }), (function (e) {
          if (n._isRunningTask(o)) return e ? t(e) : void t(null, {
            UploadId: s.UploadId,
            SliceList: s.PartList
          })
        }))
      }

      function g(e, t) {
        var n = this,
          o = e.TaskId,
          r = e.Bucket,
          i = e.Region,
          a = e.Key,
          s = e.FileSize,
          l = e.FilePath,
          d = 1 * e.PartNumber,
          p = e.SliceSize,
          f = e.ServerSideEncryption,
          h = e.UploadData,
          m = n.options.ChunkRetryTimes + 1,
          g = e.Headers || {},
          y = p * (d - 1),
          v = p,
          _ = y + p;
        _ > s && (v = (_ = s) - y);
        var x = ["x-cos-traffic-limit", "x-cos-mime-limit"],
          k = {};
        u.each(g, (function (e, t) {
          x.indexOf(t) > -1 && (k[t] = e)
        })), u.fileSlice(l, y, _, (function (s) {
          var l = u.getFileMd5(s),
            p = l ? u.binaryBase64(l) : null,
            g = h.PartList[d - 1];
          c.retry(m, (function (t) {
            n._isRunningTask(o) && n.multipartUpload({
              TaskId: o,
              Bucket: r,
              Region: i,
              Key: a,
              ContentLength: v,
              PartNumber: d,
              UploadId: h.UploadId,
              ServerSideEncryption: f,
              Body: s,
              Headers: k,
              onProgress: e.onProgress,
              ContentMD5: p,
              calledBySdk: "sliceUploadFile",
              tracker: e.tracker
            }, (function (e, r) {
              if (n._isRunningTask(o)) return e ? t(e) : (g.Uploaded = !0, t(null, r))
            }))
          }), (function (e, r) {
            if (n._isRunningTask(o)) return t(e, r)
          }))
        }))
      }

      function y(e, t) {
        var n = e.Bucket,
          o = e.Region,
          r = e.Key,
          i = e.UploadId,
          a = e.SliceList,
          s = this,
          l = this.options.ChunkRetryTimes + 1,
          u = a.map((function (e) {
            return {
              PartNumber: e.PartNumber,
              ETag: e.ETag
            }
          }));
        c.retry(l, (function (t) {
          s.multipartComplete({
            Bucket: n,
            Region: o,
            Key: r,
            UploadId: i,
            Parts: u,
            calledBySdk: "sliceUploadFile",
            tracker: e.tracker
          }, t)
        }), (function (e, n) {
          t(e, n)
        }))
      }

      function v(e, t) {
        var n = e.Bucket,
          o = e.Region,
          r = e.Key,
          i = e.AbortArray,
          a = e.AsyncLimit || 1,
          s = this,
          l = 0,
          u = new Array(i.length);
        c.eachLimit(i, a, (function (t, i) {
          var a = l;
          if (r && r !== t.Key) return u[a] = {
            error: {
              KeyNotMatch: !0
            }
          }, void i(null);
          var c = t.UploadId || t.UploadID;
          s.multipartAbort({
            Bucket: n,
            Region: o,
            Key: t.Key,
            Headers: e.Headers,
            UploadId: c
          }, (function (e) {
            var r = {
              Bucket: n,
              Region: o,
              Key: t.Key,
              UploadId: c
            };
            u[a] = {
              error: e,
              task: r
            }, i(null)
          })), l++
        }), (function (e) {
          if (e) return t(e);
          for (var n = [], o = [], r = 0, i = u.length; r < i; r++) {
            var a = u[r];
            a.task && (a.error ? o.push(a.task) : n.push(a.task))
          }
          return t(null, {
            successList: n,
            errorList: o
          })
        }))
      }

      function _() {
        return (_ = a(o().mark((function e(t, n) {
          var i, a, s, c, l, p, f, h, m, g, y;
          return o().wrap((function (e) {
            for (;;) switch (e.prev = e.next) {
              case 0:
                return i = this, a = void 0 === t.SliceSize ? i.options.SliceSize : t.SliceSize, s = [], e.prev = 3, e.next = 6, u.getFileSizeByPath(t.FilePath);
              case 6:
                c = e.sent, e.next = 12;
                break;
              case 9:
                e.prev = 9, e.t0 = e.catch(3), n({
                  error: e.t0
                });
              case 12:
                l = {
                  TaskId: ""
                }, i.options.EnableTracker && (p = i.options.UseAccelerate || "string" == typeof i.options.Domain && i.options.Domain.includes("accelerate."), t.tracker = new d({
                  bucket: t.Bucket,
                  region: t.Region,
                  apiName: "uploadFile",
                  fileKey: t.Key,
                  fileSize: c,
                  accelerate: p,
                  deepTracker: i.options.DeepTracker,
                  customId: i.options.CustomId,
                  delay: i.options.TrackerDelay
                })), u.each(t, (function (e, t) {
                  "object" !== r(e) && "function" != typeof e && (l[t] = e)
                })), f = t.onTaskReady, t.onTaskReady = function (e) {
                  l.TaskId = e, f && f(e)
                }, h = t.onFileFinish, m = function (e, o) {
                  t.tracker && t.tracker.formatResult(e, o), h && h(e, o, l), n && n(e, o)
                }, g = "postObject" === i.options.SimpleUploadMethod ? "postObject" : "putObject", y = c > a ? "sliceUploadFile" : g, s.push({
                  api: y,
                  params: t,
                  callback: m
                }), i._addTasks(s);
              case 23:
              case "end":
                return e.stop()
            }
          }), e, this, [
            [3, 9]
          ])
        })))).apply(this, arguments)
      }

      function x() {
        return x = a(o().mark((function e(t, n) {
          var i, s, c, l, p, f, h, m, g, y, v;
          return o().wrap((function (e) {
            for (;;) switch (e.prev = e.next) {
              case 0:
                return i = this, s = void 0 === t.SliceSize ? i.options.SliceSize : t.SliceSize, c = 0, l = 0, p = u.throttleOnProgress.call(i, l, t.onProgress), f = t.files.length, h = t.onFileFinish, m = Array(f), g = function (e, t, o) {
                  p(null, !0), h && h(e, t, o), m[o.Index] = {
                    options: o,
                    error: e,
                    data: t
                  }, --f <= 0 && n && n(null, {
                    files: m
                  })
                }, y = [], v = function () {
                  return t.files.map((function (e, t) {
                    return new Promise((n = a(o().mark((function n(a) {
                      var f, h, m, v, _, x, k, b, S, O;
                      return o().wrap((function (n) {
                        for (;;) switch (n.prev = n.next) {
                          case 0:
                            return f = 0, n.prev = 1, n.next = 4, u.getFileSizeByPath(e.FilePath);
                          case 4:
                            f = n.sent, n.next = 9;
                            break;
                          case 7:
                            n.prev = 7, n.t0 = n.catch(1);
                          case 9:
                            h = {
                              Index: t,
                              TaskId: ""
                            }, c += f, i.options.EnableTracker && (m = i.options.UseAccelerate || "string" == typeof i.options.Domain && i.options.Domain.includes("accelerate."), e.tracker = new d({
                              bucket: e.Bucket,
                              region: e.Region,
                              apiName: "uploadFiles",
                              fileKey: e.Key,
                              fileSize: f,
                              accelerate: m,
                              deepTracker: i.options.DeepTracker,
                              customId: i.options.CustomId,
                              delay: i.options.TrackerDelay
                            })), u.each(e, (function (e, t) {
                              "object" !== r(e) && "function" != typeof e && (h[t] = e)
                            })), v = e.onTaskReady, e.onTaskReady = function (e) {
                              h.TaskId = e, v && v(e)
                            }, _ = 0, x = e.onProgress, e.onProgress = function (e) {
                              l = l - _ + e.loaded, _ = e.loaded, x && x(e), p({
                                loaded: l,
                                total: c
                              })
                            }, k = e.onFileFinish, b = function (t, n) {
                              e.tracker && e.tracker.formatResult(t, n), k && k(t, n), g && g(t, n, h)
                            }, S = "postObject" === i.options.SimpleUploadMethod ? "postObject" : "putObject", O = f > s ? "sliceUploadFile" : S, y.push({
                              api: O,
                              params: e,
                              callback: b
                            }), a(!0);
                          case 24:
                          case "end":
                            return n.stop()
                        }
                      }), n, null, [
                        [1, 7]
                      ])
                    }))), function (e) {
                      return n.apply(this, arguments)
                    }));
                    var n
                  }))
                }, e.next = 13, Promise.all(v());
              case 13:
                i._addTasks(y);
              case 14:
              case "end":
                return e.stop()
            }
          }), e, this)
        }))), x.apply(this, arguments)
      }

      function k(e, t) {
        var n = e.TaskId,
          o = e.Bucket,
          r = e.Region,
          i = e.Key,
          a = e.CopySource,
          s = e.UploadId,
          l = 1 * e.PartNumber,
          u = e.CopySourceRange,
          d = this.options.ChunkRetryTimes + 1,
          p = this;
        c.retry(d, (function (t) {
          p.uploadPartCopy({
            TaskId: n,
            Bucket: o,
            Region: r,
            Key: i,
            CopySource: a,
            UploadId: s,
            PartNumber: l,
            CopySourceRange: u,
            onProgress: e.onProgress
          }, (function (e, n) {
            t(e || null, n)
          }))
        }), (function (e, n) {
          return t(e, n)
        }))
      }
      var b = {
        sliceUploadFile: function (e, t) {
          var n = this;
          if (!u.canFileSlice()) return e.SkipTask = !0, void("postObject" === n.options.SimpleUploadMethod ? n.postObject(e, t) : n.putObject(e, t));
          var o, r, i = new l,
            a = e.TaskId,
            c = e.Bucket,
            d = e.Region,
            f = e.Key,
            h = e.FilePath,
            g = e.ChunkSize || e.SliceSize || n.options.ChunkSize,
            v = e.AsyncLimit,
            _ = e.StorageClass,
            x = e.ServerSideEncryption,
            k = e.onHashProgress,
            b = e.tracker;
          b && b.setParams({
              chunkSize: g
            }), i.on("error", (function (o) {
              if (n._isRunningTask(a)) {
                var r = {
                  UploadId: e.UploadData.UploadId || "",
                  err: o,
                  error: o
                };
                return t(r)
              }
            })), i.on("upload_complete", (function (n) {
              var o = u.extend({
                UploadId: e.UploadData.UploadId || ""
              }, n);
              t(null, o)
            })), i.on("upload_slice_complete", (function (e) {
              y.call(n, {
                Bucket: c,
                Region: d,
                Key: f,
                UploadId: e.UploadId,
                SliceList: e.SliceList,
                tracker: b
              }, (function (t, c) {
                if (n._isRunningTask(a)) {
                  if (s.removeUsing(e.UploadId), t) return r(null, !0), i.emit("error", t);
                  s.removeUploadId(e.UploadId), r({
                    loaded: o,
                    total: o
                  }, !0), i.emit("upload_complete", c)
                }
              }))
            })), i.on("get_upload_data_finish", (function (t) {
              var l = s.getFileId(e.FileStat, e.ChunkSize, c, f);
              l && s.saveUploadId(l, t.UploadId, n.options.UploadIdCacheLimit), s.setUsing(t.UploadId), r(null, !0), m.call(n, {
                TaskId: a,
                Bucket: c,
                Region: d,
                Key: f,
                FilePath: h,
                FileSize: o,
                SliceSize: g,
                AsyncLimit: v,
                ServerSideEncryption: x,
                UploadData: t,
                onProgress: r,
                tracker: b
              }, (function (e, t) {
                if (n._isRunningTask(a)) return e ? (r(null, !0), i.emit("error", e)) : void i.emit("upload_slice_complete", t)
              }))
            })), i.on("get_file_size_finish", (function () {
              if (r = u.throttleOnProgress.call(n, o, e.onProgress), e.UploadData.UploadId) i.emit("get_upload_data_finish", e.UploadData);
              else {
                var t = u.extend({
                  TaskId: a,
                  Bucket: c,
                  Region: d,
                  Key: f,
                  Headers: e.Headers,
                  StorageClass: _,
                  FilePath: h,
                  FileSize: o,
                  SliceSize: g,
                  onHashProgress: k,
                  tracker: b
                }, e);
                t.FileSize = o, p.call(n, t, (function (t, o) {
                  if (n._isRunningTask(a)) {
                    if (t) return i.emit("error", t);
                    e.UploadData.UploadId = o.UploadId, e.UploadData.PartList = o.PartList, i.emit("get_upload_data_finish", e.UploadData)
                  }
                }))
              }
            })), o = e.ContentLength, delete e.ContentLength, !e.Headers && (e.Headers = {}), u.each(e.Headers, (function (t, n) {
              "content-length" === n.toLowerCase() && delete e.Headers[n]
            })),
            function () {
              for (var t = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 5120], r = 1048576, i = 0; i < t.length && !(o / (r = 1024 * t[i] * 1024) <= n.options.MaxPartNumber); i++);
              e.ChunkSize = e.SliceSize = g = Math.max(g, r)
            }(), 0 === o ? (e.Body = "", e.ContentLength = 0, e.SkipTask = !0, n.putObject(e, (function (e, n) {
              if (e) return t(e);
              t(null, n)
            }))) : i.emit("get_file_size_finish")
        },
        abortUploadTask: function (e, t) {
          var n = e.Bucket,
            o = e.Region,
            r = e.Key,
            i = e.UploadId,
            a = e.Level || "task",
            s = e.AsyncLimit,
            c = this,
            u = new l;
          if (u.on("error", (function (e) {
              return t(e)
            })), u.on("get_abort_array", (function (i) {
              v.call(c, {
                Bucket: n,
                Region: o,
                Key: r,
                Headers: e.Headers,
                AsyncLimit: s,
                AbortArray: i
              }, (function (e, n) {
                if (e) return t(e);
                t(null, n)
              }))
            })), "bucket" === a) f.call(c, {
            Bucket: n,
            Region: o,
            calledBySdk: "abortUploadTask"
          }, (function (e, n) {
            if (e) return t(e);
            u.emit("get_abort_array", n.UploadList || [])
          }));
          else if ("file" === a) {
            if (!r) return t({
              error: "abort_upload_task_no_key"
            });
            f.call(c, {
              Bucket: n,
              Region: o,
              Key: r,
              calledBySdk: "abortUploadTask"
            }, (function (e, n) {
              if (e) return t(e);
              u.emit("get_abort_array", n.UploadList || [])
            }))
          } else {
            if ("task" !== a) return t({
              error: "abort_unknown_level"
            });
            if (!i) return t({
              error: "abort_upload_task_no_id"
            });
            if (!r) return t({
              error: "abort_upload_task_no_key"
            });
            u.emit("get_abort_array", [{
              Key: r,
              UploadId: i
            }])
          }
        },
        uploadFile: function (e, t) {
          return _.apply(this, arguments)
        },
        uploadFiles: function (e, t) {
          return x.apply(this, arguments)
        },
        sliceCopyFile: function (e, t) {
          var n = new l,
            o = this,
            r = e.Bucket,
            i = e.Region,
            a = e.Key,
            d = e.CopySource,
            p = u.getSourceParams.call(this, d);
          if (p) {
            var f = p.Bucket,
              m = p.Region,
              g = decodeURIComponent(p.Key),
              y = void 0 === e.CopySliceSize ? o.options.CopySliceSize : e.CopySliceSize;
            y = Math.max(0, y);
            var v, _, x = e.CopyChunkSize || this.options.CopyChunkSize,
              b = this.options.CopyChunkParallelLimit,
              S = this.options.ChunkRetryTimes + 1,
              O = 0,
              C = 0,
              w = {},
              E = {},
              T = {};
            n.on("copy_slice_complete", (function (n) {
              u.each(e.Headers, (function (e, t) {
                t.toLowerCase().indexOf("x-cos-meta-")
              }));
              var l = u.map(n.PartList, (function (e) {
                return {
                  PartNumber: e.PartNumber,
                  ETag: e.ETag
                }
              }));
              c.retry(S, (function (e) {
                o.multipartComplete({
                  Bucket: r,
                  Region: i,
                  Key: a,
                  UploadId: n.UploadId,
                  Parts: l,
                  calledBySdk: "sliceCopyFile"
                }, e)
              }), (function (e, o) {
                if (s.removeUsing(n.UploadId), e) return _(null, !0), t(e);
                s.removeUploadId(n.UploadId), _({
                  loaded: v,
                  total: v
                }, !0), t(null, o)
              }))
            })), n.on("get_copy_data_finish", (function (e) {
              var l = s.getCopyFileId(d, w, x, r, a);
              l && s.saveUploadId(l, e.UploadId, o.options.UploadIdCacheLimit), s.setUsing(e.UploadId);
              var p = u.filter(e.PartList, (function (e) {
                return e.Uploaded && (C += e.PartNumber >= O && v % x || x), !e.Uploaded
              }));
              c.eachLimit(p, b, (function (t, n) {
                var s = t.PartNumber,
                  l = t.CopySourceRange,
                  u = t.end - t.start,
                  p = 0;
                c.retry(S, (function (t) {
                  k.call(o, {
                    Bucket: r,
                    Region: i,
                    Key: a,
                    CopySource: d,
                    UploadId: e.UploadId,
                    PartNumber: s,
                    CopySourceRange: l,
                    onProgress: function (e) {
                      C += e.loaded - p, p = e.loaded, _({
                        loaded: C,
                        total: v
                      })
                    }
                  }, t)
                }), (function (e, o) {
                  if (e) return n(e);
                  _({
                    loaded: C,
                    total: v
                  }), C += u - p, t.ETag = o.ETag, n(e || null, o)
                }))
              }), (function (o) {
                if (o) return s.removeUsing(e.UploadId), _(null, !0), t(o);
                n.emit("copy_slice_complete", e)
              }))
            })), n.on("get_chunk_size_finish", (function () {
              var c = function () {
                  o.multipartInit({
                    Bucket: r,
                    Region: i,
                    Key: a,
                    Headers: T
                  }, (function (o, r) {
                    if (o) return t(o);
                    e.UploadId = r.UploadId, n.emit("get_copy_data_finish", {
                      UploadId: e.UploadId,
                      PartList: e.PartList
                    })
                  }))
                },
                l = s.getCopyFileId(d, w, x, r, a),
                p = s.getUploadIdList(l);
              if (!l || !p) return c();
              ! function t(l) {
                if (l >= p.length) return c();
                var d = p[l];
                if (s.using[d]) return t(l + 1);
                h.call(o, {
                  Bucket: r,
                  Region: i,
                  Key: a,
                  UploadId: d
                }, (function (o, r) {
                  if (o) s.removeUploadId(d), t(l + 1);
                  else {
                    if (s.using[d]) return t(l + 1);
                    var i = {},
                      a = 0;
                    u.each(r.PartList, (function (e) {
                      var t = parseInt(e.Size),
                        n = a + t - 1;
                      i[e.PartNumber + "|" + a + "|" + n] = e.ETag, a += t
                    })), u.each(e.PartList, (function (e) {
                      var t = i[e.PartNumber + "|" + e.start + "|" + e.end];
                      t && (e.ETag = t, e.Uploaded = !0)
                    })), n.emit("get_copy_data_finish", {
                      UploadId: d,
                      PartList: e.PartList
                    })
                  }
                }))
              }(0)
            })), n.on("get_file_size_finish", (function () {
              var r;
              if (function () {
                  for (var t = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 5120], n = 1048576, r = 0; r < t.length && !(v / (n = 1024 * t[r] * 1024) <= o.options.MaxPartNumber); r++);
                  e.ChunkSize = x = Math.max(x, n), O = Math.ceil(v / x);
                  for (var i = [], a = 1; a <= O; a++) {
                    var s = (a - 1) * x,
                      c = a * x < v ? a * x - 1 : v - 1,
                      l = {
                        PartNumber: a,
                        start: s,
                        end: c,
                        CopySourceRange: "bytes=" + s + "-" + c
                      };
                    i.push(l)
                  }
                  e.PartList = i
                }(), (r = "Replaced" === e.Headers["x-cos-metadata-directive"] ? e.Headers : E)["x-cos-storage-class"] = e.Headers["x-cos-storage-class"] || E["x-cos-storage-class"], r = u.clearKey(r), "ARCHIVE" === E["x-cos-storage-class"] || "DEEP_ARCHIVE" === E["x-cos-storage-class"]) {
                var i = E["x-cos-restore"];
                if (!i || 'ongoing-request="true"' === i) return void t({
                  error: "Unrestored archive object is not allowed to be copied"
                })
              }
              delete r["x-cos-copy-source"], delete r["x-cos-metadata-directive"], delete r["x-cos-copy-source-If-Modified-Since"], delete r["x-cos-copy-source-If-Unmodified-Since"], delete r["x-cos-copy-source-If-Match"], delete r["x-cos-copy-source-If-None-Match"], n.emit("get_chunk_size_finish")
            })), o.headObject({
              Bucket: f,
              Region: m,
              Key: g
            }, (function (r, i) {
              if (r) r.statusCode && 404 === r.statusCode ? t({
                ErrorStatus: g + " Not Exist"
              }) : t(r);
              else if (void 0 !== (v = e.FileSize = i.headers["content-length"]) && v)
                if (_ = u.throttleOnProgress.call(o, v, e.onProgress), v <= y) e.Headers["x-cos-metadata-directive"] || (e.Headers["x-cos-metadata-directive"] = "Copy"), o.putObjectCopy(e, (function (e, n) {
                  if (e) return _(null, !0), t(e);
                  _({
                    loaded: v,
                    total: v
                  }, !0), t(e, n)
                }));
                else {
                  var a = i.headers;
                  w = a, E = {
                    "Cache-Control": a["cache-control"],
                    "Content-Disposition": a["content-disposition"],
                    "Content-Encoding": a["content-encoding"],
                    "Content-Type": a["content-type"],
                    Expires: a.expires,
                    "x-cos-storage-class": a["x-cos-storage-class"]
                  }, u.each(a, (function (e, t) {
                    var n = "x-cos-meta-";
                    0 === t.indexOf(n) && t.length > n.length && (E[t] = e)
                  })), n.emit("get_file_size_finish")
                }
              else t({
                error: 'get Content-Length error, please add "Content-Length" to CORS ExposeHeader setting.'
              })
            }))
          } else t({
            error: "CopySource format error"
          })
        }
      };
      e.exports.init = function (e, t) {
        t.transferToTaskMethod(b, "sliceUploadFile"), u.each(b, (function (t, n) {
          e.prototype[n] = u.apiWrapper(n, t)
        }))
      }
    }, function (e, t) {
      e.exports = {
        eachLimit: function (e, t, n, o) {
          if (o = o || function () {}, !e.length || t <= 0) return o();
          var r = 0,
            i = 0,
            a = 0;
          ! function s() {
            if (r >= e.length) return o();
            for (; a < t && i < e.length;) a += 1, n(e[(i += 1) - 1], (function (t) {
              t ? (o(t), o = function () {}) : (a -= 1, (r += 1) >= e.length ? o() : s())
            }))
          }()
        },
        retry: function (e, t, n) {
          e < 1 ? n() : function o(r) {
            t((function (t, i) {
              t && r < e ? o(r + 1) : n(t, i)
            }))
          }(1)
        }
      }
    }])
  }, module.exports = t2()
})(cosWxSdkV5_min);
const COS = getDefaultExportFromCjs(cosWxSdkV5_minExports);
//! moment.js
//! version : 2.29.4
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
//! license : MIT
//! momentjs.com
var hookCallback, some;

function hooks() {
  return hookCallback.apply(null, arguments)
}

function setHookCallback(e) {
  hookCallback = e
}

function isArray(e) {
  return e instanceof Array || "[object Array]" === Object.prototype.toString.call(e)
}

function isObject(e) {
  return null != e && "[object Object]" === Object.prototype.toString.call(e)
}

function hasOwnProp(e, t) {
  return Object.prototype.hasOwnProperty.call(e, t)
}

function isObjectEmpty(e) {
  if (Object.getOwnPropertyNames) return 0 === Object.getOwnPropertyNames(e).length;
  var t;
  for (t in e)
    if (hasOwnProp(e, t)) return !1;
  return !0
}

function isUndefined(e) {
  return void 0 === e
}

function isNumber(e) {
  return "number" == typeof e || "[object Number]" === Object.prototype.toString.call(e)
}

function isDate(e) {
  return e instanceof Date || "[object Date]" === Object.prototype.toString.call(e)
}

function map(e, t) {
  var n, o = [],
    r = e.length;
  for (n = 0; n < r; ++n) o.push(t(e[n], n));
  return o
}

function extend(e, t) {
  for (var n in t) hasOwnProp(t, n) && (e[n] = t[n]);
  return hasOwnProp(t, "toString") && (e.toString = t.toString), hasOwnProp(t, "valueOf") && (e.valueOf = t.valueOf), e
}

function createUTC(e, t, n, o) {
  return createLocalOrUTC(e, t, n, o, !0).utc()
}

function defaultParsingFlags() {
  return {
    empty: !1,
    unusedTokens: [],
    unusedInput: [],
    overflow: -2,
    charsLeftOver: 0,
    nullInput: !1,
    invalidEra: null,
    invalidMonth: null,
    invalidFormat: !1,
    userInvalidated: !1,
    iso: !1,
    parsedDateParts: [],
    era: null,
    meridiem: null,
    rfc2822: !1,
    weekdayMismatch: !1
  }
}

function getParsingFlags(e) {
  return null == e._pf && (e._pf = defaultParsingFlags()), e._pf
}

function isValid(e) {
  if (null == e._isValid) {
    var t = getParsingFlags(e),
      n = some.call(t.parsedDateParts, (function (e) {
        return null != e
      })),
      o = !isNaN(e._d.getTime()) && t.overflow < 0 && !t.empty && !t.invalidEra && !t.invalidMonth && !t.invalidWeekday && !t.weekdayMismatch && !t.nullInput && !t.invalidFormat && !t.userInvalidated && (!t.meridiem || t.meridiem && n);
    if (e._strict && (o = o && 0 === t.charsLeftOver && 0 === t.unusedTokens.length && void 0 === t.bigHour), null != Object.isFrozen && Object.isFrozen(e)) return o;
    e._isValid = o
  }
  return e._isValid
}

function createInvalid(e) {
  var t = createUTC(NaN);
  return null != e ? extend(getParsingFlags(t), e) : getParsingFlags(t).userInvalidated = !0, t
}
some = Array.prototype.some ? Array.prototype.some : function (e) {
  var t, n = Object(this),
    o = n.length >>> 0;
  for (t = 0; t < o; t++)
    if (t in n && e.call(this, n[t], t, n)) return !0;
  return !1
};
var momentProperties = hooks.momentProperties = [],
  updateInProgress = !1;

function copyConfig(e, t) {
  var n, o, r, i = momentProperties.length;
  if (isUndefined(t._isAMomentObject) || (e._isAMomentObject = t._isAMomentObject), isUndefined(t._i) || (e._i = t._i), isUndefined(t._f) || (e._f = t._f), isUndefined(t._l) || (e._l = t._l), isUndefined(t._strict) || (e._strict = t._strict), isUndefined(t._tzm) || (e._tzm = t._tzm), isUndefined(t._isUTC) || (e._isUTC = t._isUTC), isUndefined(t._offset) || (e._offset = t._offset), isUndefined(t._pf) || (e._pf = getParsingFlags(t)), isUndefined(t._locale) || (e._locale = t._locale), i > 0)
    for (n = 0; n < i; n++) isUndefined(r = t[o = momentProperties[n]]) || (e[o] = r);
  return e
}

function Moment(e) {
  copyConfig(this, e), this._d = new Date(null != e._d ? e._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), !1 === updateInProgress && (updateInProgress = !0, hooks.updateOffset(this), updateInProgress = !1)
}

function isMoment(e) {
  return e instanceof Moment || null != e && null != e._isAMomentObject
}

function warn(e) {
  !1 === hooks.suppressDeprecationWarnings && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + e)
}

function deprecate(e, t) {
  var n = !0;
  return extend((function () {
    if (null != hooks.deprecationHandler && hooks.deprecationHandler(null, e), n) {
      var o, r, i, a = [],
        s = arguments.length;
      for (r = 0; r < s; r++) {
        if (o = "", "object" == typeof arguments[r]) {
          for (i in o += "\n[" + r + "] ", arguments[0]) hasOwnProp(arguments[0], i) && (o += i + ": " + arguments[0][i] + ", ");
          o = o.slice(0, -2)
        } else o = arguments[r];
        a.push(o)
      }
      warn(e + "\nArguments: " + Array.prototype.slice.call(a).join("") + "\n" + (new Error).stack), n = !1
    }
    return t.apply(this, arguments)
  }), t)
}
var deprecations = {},
  keys;

function deprecateSimple(e, t) {
  null != hooks.deprecationHandler && hooks.deprecationHandler(e, t), deprecations[e] || (warn(t), deprecations[e] = !0)
}

function isFunction(e) {
  return "undefined" != typeof Function && e instanceof Function || "[object Function]" === Object.prototype.toString.call(e)
}

function set(e) {
  var t, n;
  for (n in e) hasOwnProp(e, n) && (isFunction(t = e[n]) ? this[n] = t : this["_" + n] = t);
  this._config = e, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source)
}

function mergeConfigs(e, t) {
  var n, o = extend({}, e);
  for (n in t) hasOwnProp(t, n) && (isObject(e[n]) && isObject(t[n]) ? (o[n] = {}, extend(o[n], e[n]), extend(o[n], t[n])) : null != t[n] ? o[n] = t[n] : delete o[n]);
  for (n in e) hasOwnProp(e, n) && !hasOwnProp(t, n) && isObject(e[n]) && (o[n] = extend({}, o[n]));
  return o
}

function Locale(e) {
  null != e && this.set(e)
}
hooks.suppressDeprecationWarnings = !1, hooks.deprecationHandler = null, keys = Object.keys ? Object.keys : function (e) {
  var t, n = [];
  for (t in e) hasOwnProp(e, t) && n.push(t);
  return n
};
var defaultCalendar = {
  sameDay: "[Today at] LT",
  nextDay: "[Tomorrow at] LT",
  nextWeek: "dddd [at] LT",
  lastDay: "[Yesterday at] LT",
  lastWeek: "[Last] dddd [at] LT",
  sameElse: "L"
};

function calendar(e, t, n) {
  var o = this._calendar[e] || this._calendar.sameElse;
  return isFunction(o) ? o.call(t, n) : o
}

function zeroFill(e, t, n) {
  var o = "" + Math.abs(e),
    r = t - o.length;
  return (e >= 0 ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, r)).toString().substr(1) + o
}
var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
  localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
  formatFunctions = {},
  formatTokenFunctions = {};

function addFormatToken(e, t, n, o) {
  var r = o;
  "string" == typeof o && (r = function () {
    return this[o]()
  }), e && (formatTokenFunctions[e] = r), t && (formatTokenFunctions[t[0]] = function () {
    return zeroFill(r.apply(this, arguments), t[1], t[2])
  }), n && (formatTokenFunctions[n] = function () {
    return this.localeData().ordinal(r.apply(this, arguments), e)
  })
}

function removeFormattingTokens(e) {
  return e.match(/\[[\s\S]/) ? e.replace(/^\[|\]$/g, "") : e.replace(/\\/g, "")
}

function makeFormatFunction(e) {
  var t, n, o = e.match(formattingTokens);
  for (t = 0, n = o.length; t < n; t++) formatTokenFunctions[o[t]] ? o[t] = formatTokenFunctions[o[t]] : o[t] = removeFormattingTokens(o[t]);
  return function (t) {
    var r, i = "";
    for (r = 0; r < n; r++) i += isFunction(o[r]) ? o[r].call(t, e) : o[r];
    return i
  }
}

function formatMoment(e, t) {
  return e.isValid() ? (t = expandFormat(t, e.localeData()), formatFunctions[t] = formatFunctions[t] || makeFormatFunction(t), formatFunctions[t](e)) : e.localeData().invalidDate()
}

function expandFormat(e, t) {
  var n = 5;

  function o(e) {
    return t.longDateFormat(e) || e
  }
  for (localFormattingTokens.lastIndex = 0; n >= 0 && localFormattingTokens.test(e);) e = e.replace(localFormattingTokens, o), localFormattingTokens.lastIndex = 0, n -= 1;
  return e
}
var defaultLongDateFormat = {
  LTS: "h:mm:ss A",
  LT: "h:mm A",
  L: "MM/DD/YYYY",
  LL: "MMMM D, YYYY",
  LLL: "MMMM D, YYYY h:mm A",
  LLLL: "dddd, MMMM D, YYYY h:mm A"
};

function longDateFormat(e) {
  var t = this._longDateFormat[e],
    n = this._longDateFormat[e.toUpperCase()];
  return t || !n ? t : (this._longDateFormat[e] = n.match(formattingTokens).map((function (e) {
    return "MMMM" === e || "MM" === e || "DD" === e || "dddd" === e ? e.slice(1) : e
  })).join(""), this._longDateFormat[e])
}
var defaultInvalidDate = "Invalid date";

function invalidDate() {
  return this._invalidDate
}
var defaultOrdinal = "%d",
  defaultDayOfMonthOrdinalParse = /\d{1,2}/;

function ordinal(e) {
  return this._ordinal.replace("%d", e)
}
var defaultRelativeTime = {
  future: "in %s",
  past: "%s ago",
  s: "a few seconds",
  ss: "%d seconds",
  m: "a minute",
  mm: "%d minutes",
  h: "an hour",
  hh: "%d hours",
  d: "a day",
  dd: "%d days",
  w: "a week",
  ww: "%d weeks",
  M: "a month",
  MM: "%d months",
  y: "a year",
  yy: "%d years"
};

function relativeTime(e, t, n, o) {
  var r = this._relativeTime[n];
  return isFunction(r) ? r(e, t, n, o) : r.replace(/%d/i, e)
}

function pastFuture(e, t) {
  var n = this._relativeTime[e > 0 ? "future" : "past"];
  return isFunction(n) ? n(t) : n.replace(/%s/i, t)
}
var aliases = {};

function addUnitAlias(e, t) {
  var n = e.toLowerCase();
  aliases[n] = aliases[n + "s"] = aliases[t] = e
}

function normalizeUnits(e) {
  return "string" == typeof e ? aliases[e] || aliases[e.toLowerCase()] : void 0
}

function normalizeObjectUnits(e) {
  var t, n, o = {};
  for (n in e) hasOwnProp(e, n) && (t = normalizeUnits(n)) && (o[t] = e[n]);
  return o
}
var priorities = {};

function addUnitPriority(e, t) {
  priorities[e] = t
}

function getPrioritizedUnits(e) {
  var t, n = [];
  for (t in e) hasOwnProp(e, t) && n.push({
    unit: t,
    priority: priorities[t]
  });
  return n.sort((function (e, t) {
    return e.priority - t.priority
  })), n
}

function isLeapYear(e) {
  return e % 4 == 0 && e % 100 != 0 || e % 400 == 0
}

function absFloor(e) {
  return e < 0 ? Math.ceil(e) || 0 : Math.floor(e)
}

function toInt(e) {
  var t = +e,
    n = 0;
  return 0 !== t && isFinite(t) && (n = absFloor(t)), n
}

function makeGetSet(e, t) {
  return function (n) {
    return null != n ? (set$1(this, e, n), hooks.updateOffset(this, t), this) : get(this, e)
  }
}

function get(e, t) {
  return e.isValid() ? e._d["get" + (e._isUTC ? "UTC" : "") + t]() : NaN
}

function set$1(e, t, n) {
  e.isValid() && !isNaN(n) && ("FullYear" === t && isLeapYear(e.year()) && 1 === e.month() && 29 === e.date() ? (n = toInt(n), e._d["set" + (e._isUTC ? "UTC" : "") + t](n, e.month(), daysInMonth(n, e.month()))) : e._d["set" + (e._isUTC ? "UTC" : "") + t](n))
}

function stringGet(e) {
  return isFunction(this[e = normalizeUnits(e)]) ? this[e]() : this
}

function stringSet(e, t) {
  if ("object" == typeof e) {
    var n, o = getPrioritizedUnits(e = normalizeObjectUnits(e)),
      r = o.length;
    for (n = 0; n < r; n++) this[o[n].unit](e[o[n].unit])
  } else if (isFunction(this[e = normalizeUnits(e)])) return this[e](t);
  return this
}
var match1 = /\d/,
  match2 = /\d\d/,
  match3 = /\d{3}/,
  match4 = /\d{4}/,
  match6 = /[+-]?\d{6}/,
  match1to2 = /\d\d?/,
  match3to4 = /\d\d\d\d?/,
  match5to6 = /\d\d\d\d\d\d?/,
  match1to3 = /\d{1,3}/,
  match1to4 = /\d{1,4}/,
  match1to6 = /[+-]?\d{1,6}/,
  matchUnsigned = /\d+/,
  matchSigned = /[+-]?\d+/,
  matchOffset = /Z|[+-]\d\d:?\d\d/gi,
  matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi,
  matchTimestamp = /[+-]?\d+(\.\d{1,3})?/,
  matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,
  regexes;

function addRegexToken(e, t, n) {
  regexes[e] = isFunction(t) ? t : function (e, o) {
    return e && n ? n : t
  }
}

function getParseRegexForToken(e, t) {
  return hasOwnProp(regexes, e) ? regexes[e](t._strict, t._locale) : new RegExp(unescapeFormat(e))
}

function unescapeFormat(e) {
  return regexEscape(e.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, (function (e, t, n, o, r) {
    return t || n || o || r
  })))
}

function regexEscape(e) {
  return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&")
}
regexes = {};
var tokens = {};

function addParseToken(e, t) {
  var n, o, r = t;
  for ("string" == typeof e && (e = [e]), isNumber(t) && (r = function (e, n) {
      n[t] = toInt(e)
    }), o = e.length, n = 0; n < o; n++) tokens[e[n]] = r
}

function addWeekParseToken(e, t) {
  addParseToken(e, (function (e, n, o, r) {
    o._w = o._w || {}, t(e, o._w, o, r)
  }))
}

function addTimeToArrayFromToken(e, t, n) {
  null != t && hasOwnProp(tokens, e) && tokens[e](t, n._a, n, e)
}
var YEAR = 0,
  MONTH = 1,
  DATE = 2,
  HOUR = 3,
  MINUTE = 4,
  SECOND = 5,
  MILLISECOND = 6,
  WEEK = 7,
  WEEKDAY = 8,
  indexOf;

function mod(e, t) {
  return (e % t + t) % t
}

function daysInMonth(e, t) {
  if (isNaN(e) || isNaN(t)) return NaN;
  var n = mod(t, 12);
  return e += (t - n) / 12, 1 === n ? isLeapYear(e) ? 29 : 28 : 31 - n % 7 % 2
}
indexOf = Array.prototype.indexOf ? Array.prototype.indexOf : function (e) {
  var t;
  for (t = 0; t < this.length; ++t)
    if (this[t] === e) return t;
  return -1
}, addFormatToken("M", ["MM", 2], "Mo", (function () {
  return this.month() + 1
})), addFormatToken("MMM", 0, 0, (function (e) {
  return this.localeData().monthsShort(this, e)
})), addFormatToken("MMMM", 0, 0, (function (e) {
  return this.localeData().months(this, e)
})), addUnitAlias("month", "M"), addUnitPriority("month", 8), addRegexToken("M", match1to2), addRegexToken("MM", match1to2, match2), addRegexToken("MMM", (function (e, t) {
  return t.monthsShortRegex(e)
})), addRegexToken("MMMM", (function (e, t) {
  return t.monthsRegex(e)
})), addParseToken(["M", "MM"], (function (e, t) {
  t[MONTH] = toInt(e) - 1
})), addParseToken(["MMM", "MMMM"], (function (e, t, n, o) {
  var r = n._locale.monthsParse(e, o, n._strict);
  null != r ? t[MONTH] = r : getParsingFlags(n).invalidMonth = e
}));
var defaultLocaleMonths = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
  defaultLocaleMonthsShort = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
  MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
  defaultMonthsShortRegex = matchWord,
  defaultMonthsRegex = matchWord;

function localeMonths(e, t) {
  return e ? isArray(this._months) ? this._months[e.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(t) ? "format" : "standalone"][e.month()] : isArray(this._months) ? this._months : this._months.standalone
}

function localeMonthsShort(e, t) {
  return e ? isArray(this._monthsShort) ? this._monthsShort[e.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(t) ? "format" : "standalone"][e.month()] : isArray(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone
}

function handleStrictParse(e, t, n) {
  var o, r, i, a = e.toLocaleLowerCase();
  if (!this._monthsParse)
    for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], o = 0; o < 12; ++o) i = createUTC([2e3, o]), this._shortMonthsParse[o] = this.monthsShort(i, "").toLocaleLowerCase(), this._longMonthsParse[o] = this.months(i, "").toLocaleLowerCase();
  return n ? "MMM" === t ? -1 !== (r = indexOf.call(this._shortMonthsParse, a)) ? r : null : -1 !== (r = indexOf.call(this._longMonthsParse, a)) ? r : null : "MMM" === t ? -1 !== (r = indexOf.call(this._shortMonthsParse, a)) || -1 !== (r = indexOf.call(this._longMonthsParse, a)) ? r : null : -1 !== (r = indexOf.call(this._longMonthsParse, a)) || -1 !== (r = indexOf.call(this._shortMonthsParse, a)) ? r : null
}

function localeMonthsParse(e, t, n) {
  var o, r, i;
  if (this._monthsParseExact) return handleStrictParse.call(this, e, t, n);
  for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), o = 0; o < 12; o++) {
    if (r = createUTC([2e3, o]), n && !this._longMonthsParse[o] && (this._longMonthsParse[o] = new RegExp("^" + this.months(r, "").replace(".", "") + "$", "i"), this._shortMonthsParse[o] = new RegExp("^" + this.monthsShort(r, "").replace(".", "") + "$", "i")), n || this._monthsParse[o] || (i = "^" + this.months(r, "") + "|^" + this.monthsShort(r, ""), this._monthsParse[o] = new RegExp(i.replace(".", ""), "i")), n && "MMMM" === t && this._longMonthsParse[o].test(e)) return o;
    if (n && "MMM" === t && this._shortMonthsParse[o].test(e)) return o;
    if (!n && this._monthsParse[o].test(e)) return o
  }
}

function setMonth(e, t) {
  var n;
  if (!e.isValid()) return e;
  if ("string" == typeof t)
    if (/^\d+$/.test(t)) t = toInt(t);
    else if (!isNumber(t = e.localeData().monthsParse(t))) return e;
  return n = Math.min(e.date(), daysInMonth(e.year(), t)), e._d["set" + (e._isUTC ? "UTC" : "") + "Month"](t, n), e
}

function getSetMonth(e) {
  return null != e ? (setMonth(this, e), hooks.updateOffset(this, !0), this) : get(this, "Month")
}

function getDaysInMonth() {
  return daysInMonth(this.year(), this.month())
}

function monthsShortRegex(e) {
  return this._monthsParseExact ? (hasOwnProp(this, "_monthsRegex") || computeMonthsParse.call(this), e ? this._monthsShortStrictRegex : this._monthsShortRegex) : (hasOwnProp(this, "_monthsShortRegex") || (this._monthsShortRegex = defaultMonthsShortRegex), this._monthsShortStrictRegex && e ? this._monthsShortStrictRegex : this._monthsShortRegex)
}

function monthsRegex(e) {
  return this._monthsParseExact ? (hasOwnProp(this, "_monthsRegex") || computeMonthsParse.call(this), e ? this._monthsStrictRegex : this._monthsRegex) : (hasOwnProp(this, "_monthsRegex") || (this._monthsRegex = defaultMonthsRegex), this._monthsStrictRegex && e ? this._monthsStrictRegex : this._monthsRegex)
}

function computeMonthsParse() {
  function e(e, t) {
    return t.length - e.length
  }
  var t, n, o = [],
    r = [],
    i = [];
  for (t = 0; t < 12; t++) n = createUTC([2e3, t]), o.push(this.monthsShort(n, "")), r.push(this.months(n, "")), i.push(this.months(n, "")), i.push(this.monthsShort(n, ""));
  for (o.sort(e), r.sort(e), i.sort(e), t = 0; t < 12; t++) o[t] = regexEscape(o[t]), r[t] = regexEscape(r[t]);
  for (t = 0; t < 24; t++) i[t] = regexEscape(i[t]);
  this._monthsRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + o.join("|") + ")", "i")
}

function daysInYear(e) {
  return isLeapYear(e) ? 366 : 365
}
addFormatToken("Y", 0, 0, (function () {
  var e = this.year();
  return e <= 9999 ? zeroFill(e, 4) : "+" + e
})), addFormatToken(0, ["YY", 2], 0, (function () {
  return this.year() % 100
})), addFormatToken(0, ["YYYY", 4], 0, "year"), addFormatToken(0, ["YYYYY", 5], 0, "year"), addFormatToken(0, ["YYYYYY", 6, !0], 0, "year"), addUnitAlias("year", "y"), addUnitPriority("year", 1), addRegexToken("Y", matchSigned), addRegexToken("YY", match1to2, match2), addRegexToken("YYYY", match1to4, match4), addRegexToken("YYYYY", match1to6, match6), addRegexToken("YYYYYY", match1to6, match6), addParseToken(["YYYYY", "YYYYYY"], YEAR), addParseToken("YYYY", (function (e, t) {
  t[YEAR] = 2 === e.length ? hooks.parseTwoDigitYear(e) : toInt(e)
})), addParseToken("YY", (function (e, t) {
  t[YEAR] = hooks.parseTwoDigitYear(e)
})), addParseToken("Y", (function (e, t) {
  t[YEAR] = parseInt(e, 10)
})), hooks.parseTwoDigitYear = function (e) {
  return toInt(e) + (toInt(e) > 68 ? 1900 : 2e3)
};
var getSetYear = makeGetSet("FullYear", !0);

function getIsLeapYear() {
  return isLeapYear(this.year())
}

function createDate(e, t, n, o, r, i, a) {
  var s;
  return e < 100 && e >= 0 ? (s = new Date(e + 400, t, n, o, r, i, a), isFinite(s.getFullYear()) && s.setFullYear(e)) : s = new Date(e, t, n, o, r, i, a), s
}

function createUTCDate(e) {
  var t, n;
  return e < 100 && e >= 0 ? ((n = Array.prototype.slice.call(arguments))[0] = e + 400, t = new Date(Date.UTC.apply(null, n)), isFinite(t.getUTCFullYear()) && t.setUTCFullYear(e)) : t = new Date(Date.UTC.apply(null, arguments)), t
}

function firstWeekOffset(e, t, n) {
  var o = 7 + t - n;
  return -((7 + createUTCDate(e, 0, o).getUTCDay() - t) % 7) + o - 1
}

function dayOfYearFromWeeks(e, t, n, o, r) {
  var i, a, s = 1 + 7 * (t - 1) + (7 + n - o) % 7 + firstWeekOffset(e, o, r);
  return s <= 0 ? a = daysInYear(i = e - 1) + s : s > daysInYear(e) ? (i = e + 1, a = s - daysInYear(e)) : (i = e, a = s), {
    year: i,
    dayOfYear: a
  }
}

function weekOfYear(e, t, n) {
  var o, r, i = firstWeekOffset(e.year(), t, n),
    a = Math.floor((e.dayOfYear() - i - 1) / 7) + 1;
  return a < 1 ? o = a + weeksInYear(r = e.year() - 1, t, n) : a > weeksInYear(e.year(), t, n) ? (o = a - weeksInYear(e.year(), t, n), r = e.year() + 1) : (r = e.year(), o = a), {
    week: o,
    year: r
  }
}

function weeksInYear(e, t, n) {
  var o = firstWeekOffset(e, t, n),
    r = firstWeekOffset(e + 1, t, n);
  return (daysInYear(e) - o + r) / 7
}

function localeWeek(e) {
  return weekOfYear(e, this._week.dow, this._week.doy).week
}
addFormatToken("w", ["ww", 2], "wo", "week"), addFormatToken("W", ["WW", 2], "Wo", "isoWeek"), addUnitAlias("week", "w"), addUnitAlias("isoWeek", "W"), addUnitPriority("week", 5), addUnitPriority("isoWeek", 5), addRegexToken("w", match1to2), addRegexToken("ww", match1to2, match2), addRegexToken("W", match1to2), addRegexToken("WW", match1to2, match2), addWeekParseToken(["w", "ww", "W", "WW"], (function (e, t, n, o) {
  t[o.substr(0, 1)] = toInt(e)
}));
var defaultLocaleWeek = {
  dow: 0,
  doy: 6
};

function localeFirstDayOfWeek() {
  return this._week.dow
}

function localeFirstDayOfYear() {
  return this._week.doy
}

function getSetWeek(e) {
  var t = this.localeData().week(this);
  return null == e ? t : this.add(7 * (e - t), "d")
}

function getSetISOWeek(e) {
  var t = weekOfYear(this, 1, 4).week;
  return null == e ? t : this.add(7 * (e - t), "d")
}

function parseWeekday(e, t) {
  return "string" != typeof e ? e : isNaN(e) ? "number" == typeof (e = t.weekdaysParse(e)) ? e : null : parseInt(e, 10)
}

function parseIsoWeekday(e, t) {
  return "string" == typeof e ? t.weekdaysParse(e) % 7 || 7 : isNaN(e) ? null : e
}

function shiftWeekdays(e, t) {
  return e.slice(t, 7).concat(e.slice(0, t))
}
addFormatToken("d", 0, "do", "day"), addFormatToken("dd", 0, 0, (function (e) {
  return this.localeData().weekdaysMin(this, e)
})), addFormatToken("ddd", 0, 0, (function (e) {
  return this.localeData().weekdaysShort(this, e)
})), addFormatToken("dddd", 0, 0, (function (e) {
  return this.localeData().weekdays(this, e)
})), addFormatToken("e", 0, 0, "weekday"), addFormatToken("E", 0, 0, "isoWeekday"), addUnitAlias("day", "d"), addUnitAlias("weekday", "e"), addUnitAlias("isoWeekday", "E"), addUnitPriority("day", 11), addUnitPriority("weekday", 11), addUnitPriority("isoWeekday", 11), addRegexToken("d", match1to2), addRegexToken("e", match1to2), addRegexToken("E", match1to2), addRegexToken("dd", (function (e, t) {
  return t.weekdaysMinRegex(e)
})), addRegexToken("ddd", (function (e, t) {
  return t.weekdaysShortRegex(e)
})), addRegexToken("dddd", (function (e, t) {
  return t.weekdaysRegex(e)
})), addWeekParseToken(["dd", "ddd", "dddd"], (function (e, t, n, o) {
  var r = n._locale.weekdaysParse(e, o, n._strict);
  null != r ? t.d = r : getParsingFlags(n).invalidWeekday = e
})), addWeekParseToken(["d", "e", "E"], (function (e, t, n, o) {
  t[o] = toInt(e)
}));
var defaultLocaleWeekdays = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
  defaultLocaleWeekdaysShort = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
  defaultLocaleWeekdaysMin = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
  defaultWeekdaysRegex = matchWord,
  defaultWeekdaysShortRegex = matchWord,
  defaultWeekdaysMinRegex = matchWord;

function localeWeekdays(e, t) {
  var n = isArray(this._weekdays) ? this._weekdays : this._weekdays[e && !0 !== e && this._weekdays.isFormat.test(t) ? "format" : "standalone"];
  return !0 === e ? shiftWeekdays(n, this._week.dow) : e ? n[e.day()] : n
}

function localeWeekdaysShort(e) {
  return !0 === e ? shiftWeekdays(this._weekdaysShort, this._week.dow) : e ? this._weekdaysShort[e.day()] : this._weekdaysShort
}

function localeWeekdaysMin(e) {
  return !0 === e ? shiftWeekdays(this._weekdaysMin, this._week.dow) : e ? this._weekdaysMin[e.day()] : this._weekdaysMin
}

function handleStrictParse$1(e, t, n) {
  var o, r, i, a = e.toLocaleLowerCase();
  if (!this._weekdaysParse)
    for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], o = 0; o < 7; ++o) i = createUTC([2e3, 1]).day(o), this._minWeekdaysParse[o] = this.weekdaysMin(i, "").toLocaleLowerCase(), this._shortWeekdaysParse[o] = this.weekdaysShort(i, "").toLocaleLowerCase(), this._weekdaysParse[o] = this.weekdays(i, "").toLocaleLowerCase();
  return n ? "dddd" === t ? -1 !== (r = indexOf.call(this._weekdaysParse, a)) ? r : null : "ddd" === t ? -1 !== (r = indexOf.call(this._shortWeekdaysParse, a)) ? r : null : -1 !== (r = indexOf.call(this._minWeekdaysParse, a)) ? r : null : "dddd" === t ? -1 !== (r = indexOf.call(this._weekdaysParse, a)) || -1 !== (r = indexOf.call(this._shortWeekdaysParse, a)) || -1 !== (r = indexOf.call(this._minWeekdaysParse, a)) ? r : null : "ddd" === t ? -1 !== (r = indexOf.call(this._shortWeekdaysParse, a)) || -1 !== (r = indexOf.call(this._weekdaysParse, a)) || -1 !== (r = indexOf.call(this._minWeekdaysParse, a)) ? r : null : -1 !== (r = indexOf.call(this._minWeekdaysParse, a)) || -1 !== (r = indexOf.call(this._weekdaysParse, a)) || -1 !== (r = indexOf.call(this._shortWeekdaysParse, a)) ? r : null
}

function localeWeekdaysParse(e, t, n) {
  var o, r, i;
  if (this._weekdaysParseExact) return handleStrictParse$1.call(this, e, t, n);
  for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), o = 0; o < 7; o++) {
    if (r = createUTC([2e3, 1]).day(o), n && !this._fullWeekdaysParse[o] && (this._fullWeekdaysParse[o] = new RegExp("^" + this.weekdays(r, "").replace(".", "\\.?") + "$", "i"), this._shortWeekdaysParse[o] = new RegExp("^" + this.weekdaysShort(r, "").replace(".", "\\.?") + "$", "i"), this._minWeekdaysParse[o] = new RegExp("^" + this.weekdaysMin(r, "").replace(".", "\\.?") + "$", "i")), this._weekdaysParse[o] || (i = "^" + this.weekdays(r, "") + "|^" + this.weekdaysShort(r, "") + "|^" + this.weekdaysMin(r, ""), this._weekdaysParse[o] = new RegExp(i.replace(".", ""), "i")), n && "dddd" === t && this._fullWeekdaysParse[o].test(e)) return o;
    if (n && "ddd" === t && this._shortWeekdaysParse[o].test(e)) return o;
    if (n && "dd" === t && this._minWeekdaysParse[o].test(e)) return o;
    if (!n && this._weekdaysParse[o].test(e)) return o
  }
}

function getSetDayOfWeek(e) {
  if (!this.isValid()) return null != e ? this : NaN;
  var t = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
  return null != e ? (e = parseWeekday(e, this.localeData()), this.add(e - t, "d")) : t
}

function getSetLocaleDayOfWeek(e) {
  if (!this.isValid()) return null != e ? this : NaN;
  var t = (this.day() + 7 - this.localeData()._week.dow) % 7;
  return null == e ? t : this.add(e - t, "d")
}

function getSetISODayOfWeek(e) {
  if (!this.isValid()) return null != e ? this : NaN;
  if (null != e) {
    var t = parseIsoWeekday(e, this.localeData());
    return this.day(this.day() % 7 ? t : t - 7)
  }
  return this.day() || 7
}

function weekdaysRegex(e) {
  return this._weekdaysParseExact ? (hasOwnProp(this, "_weekdaysRegex") || computeWeekdaysParse.call(this), e ? this._weekdaysStrictRegex : this._weekdaysRegex) : (hasOwnProp(this, "_weekdaysRegex") || (this._weekdaysRegex = defaultWeekdaysRegex), this._weekdaysStrictRegex && e ? this._weekdaysStrictRegex : this._weekdaysRegex)
}

function weekdaysShortRegex(e) {
  return this._weekdaysParseExact ? (hasOwnProp(this, "_weekdaysRegex") || computeWeekdaysParse.call(this), e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (hasOwnProp(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = defaultWeekdaysShortRegex), this._weekdaysShortStrictRegex && e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex)
}

function weekdaysMinRegex(e) {
  return this._weekdaysParseExact ? (hasOwnProp(this, "_weekdaysRegex") || computeWeekdaysParse.call(this), e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (hasOwnProp(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = defaultWeekdaysMinRegex), this._weekdaysMinStrictRegex && e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex)
}

function computeWeekdaysParse() {
  function e(e, t) {
    return t.length - e.length
  }
  var t, n, o, r, i, a = [],
    s = [],
    c = [],
    l = [];
  for (t = 0; t < 7; t++) n = createUTC([2e3, 1]).day(t), o = regexEscape(this.weekdaysMin(n, "")), r = regexEscape(this.weekdaysShort(n, "")), i = regexEscape(this.weekdays(n, "")), a.push(o), s.push(r), c.push(i), l.push(o), l.push(r), l.push(i);
  a.sort(e), s.sort(e), c.sort(e), l.sort(e), this._weekdaysRegex = new RegExp("^(" + l.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + c.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + s.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + a.join("|") + ")", "i")
}

function hFormat() {
  return this.hours() % 12 || 12
}

function kFormat() {
  return this.hours() || 24
}

function meridiem(e, t) {
  addFormatToken(e, 0, 0, (function () {
    return this.localeData().meridiem(this.hours(), this.minutes(), t)
  }))
}

function matchMeridiem(e, t) {
  return t._meridiemParse
}

function localeIsPM(e) {
  return "p" === (e + "").toLowerCase().charAt(0)
}
addFormatToken("H", ["HH", 2], 0, "hour"), addFormatToken("h", ["hh", 2], 0, hFormat), addFormatToken("k", ["kk", 2], 0, kFormat), addFormatToken("hmm", 0, 0, (function () {
  return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2)
})), addFormatToken("hmmss", 0, 0, (function () {
  return "" + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2)
})), addFormatToken("Hmm", 0, 0, (function () {
  return "" + this.hours() + zeroFill(this.minutes(), 2)
})), addFormatToken("Hmmss", 0, 0, (function () {
  return "" + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2)
})), meridiem("a", !0), meridiem("A", !1), addUnitAlias("hour", "h"), addUnitPriority("hour", 13), addRegexToken("a", matchMeridiem), addRegexToken("A", matchMeridiem), addRegexToken("H", match1to2), addRegexToken("h", match1to2), addRegexToken("k", match1to2), addRegexToken("HH", match1to2, match2), addRegexToken("hh", match1to2, match2), addRegexToken("kk", match1to2, match2), addRegexToken("hmm", match3to4), addRegexToken("hmmss", match5to6), addRegexToken("Hmm", match3to4), addRegexToken("Hmmss", match5to6), addParseToken(["H", "HH"], HOUR), addParseToken(["k", "kk"], (function (e, t, n) {
  var o = toInt(e);
  t[HOUR] = 24 === o ? 0 : o
})), addParseToken(["a", "A"], (function (e, t, n) {
  n._isPm = n._locale.isPM(e), n._meridiem = e
})), addParseToken(["h", "hh"], (function (e, t, n) {
  t[HOUR] = toInt(e), getParsingFlags(n).bigHour = !0
})), addParseToken("hmm", (function (e, t, n) {
  var o = e.length - 2;
  t[HOUR] = toInt(e.substr(0, o)), t[MINUTE] = toInt(e.substr(o)), getParsingFlags(n).bigHour = !0
})), addParseToken("hmmss", (function (e, t, n) {
  var o = e.length - 4,
    r = e.length - 2;
  t[HOUR] = toInt(e.substr(0, o)), t[MINUTE] = toInt(e.substr(o, 2)), t[SECOND] = toInt(e.substr(r)), getParsingFlags(n).bigHour = !0
})), addParseToken("Hmm", (function (e, t, n) {
  var o = e.length - 2;
  t[HOUR] = toInt(e.substr(0, o)), t[MINUTE] = toInt(e.substr(o))
})), addParseToken("Hmmss", (function (e, t, n) {
  var o = e.length - 4,
    r = e.length - 2;
  t[HOUR] = toInt(e.substr(0, o)), t[MINUTE] = toInt(e.substr(o, 2)), t[SECOND] = toInt(e.substr(r))
}));
var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i,
  getSetHour = makeGetSet("Hours", !0);

function localeMeridiem(e, t, n) {
  return e > 11 ? n ? "pm" : "PM" : n ? "am" : "AM"
}
var baseConfig = {
    calendar: defaultCalendar,
    longDateFormat: defaultLongDateFormat,
    invalidDate: defaultInvalidDate,
    ordinal: defaultOrdinal,
    dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
    relativeTime: defaultRelativeTime,
    months: defaultLocaleMonths,
    monthsShort: defaultLocaleMonthsShort,
    week: defaultLocaleWeek,
    weekdays: defaultLocaleWeekdays,
    weekdaysMin: defaultLocaleWeekdaysMin,
    weekdaysShort: defaultLocaleWeekdaysShort,
    meridiemParse: defaultLocaleMeridiemParse
  },
  locales = {},
  localeFamilies = {},
  globalLocale;

function commonPrefix(e, t) {
  var n, o = Math.min(e.length, t.length);
  for (n = 0; n < o; n += 1)
    if (e[n] !== t[n]) return n;
  return o
}

function normalizeLocale(e) {
  return e ? e.toLowerCase().replace("_", "-") : e
}

function chooseLocale(e) {
  for (var t, n, o, r, i = 0; i < e.length;) {
    for (t = (r = normalizeLocale(e[i]).split("-")).length, n = (n = normalizeLocale(e[i + 1])) ? n.split("-") : null; t > 0;) {
      if (o = loadLocale(r.slice(0, t).join("-"))) return o;
      if (n && n.length >= t && commonPrefix(r, n) >= t - 1) break;
      t--
    }
    i++
  }
  return globalLocale
}

function isLocaleNameSane(e) {
  return null != e.match("^[^/\\\\]*$")
}

function loadLocale(e) {
  var t = null;
  if (void 0 === locales[e] && "undefined" != typeof module && module && module.exports && isLocaleNameSane(e)) try {
    t = globalLocale._abbr, require("./locale/" + e), getSetGlobalLocale(t)
  } catch (n) {
    locales[e] = null
  }
  return locales[e]
}

function getSetGlobalLocale(e, t) {
  var n;
  return e && ((n = isUndefined(t) ? getLocale(e) : defineLocale(e, t)) ? globalLocale = n : "undefined" != typeof console && console.warn && console.warn("Locale " + e + " not found. Did you forget to load it?")), globalLocale._abbr
}

function defineLocale(e, t) {
  if (null !== t) {
    var n, o = baseConfig;
    if (t.abbr = e, null != locales[e]) deprecateSimple("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), o = locales[e]._config;
    else if (null != t.parentLocale)
      if (null != locales[t.parentLocale]) o = locales[t.parentLocale]._config;
      else {
        if (null == (n = loadLocale(t.parentLocale))) return localeFamilies[t.parentLocale] || (localeFamilies[t.parentLocale] = []), localeFamilies[t.parentLocale].push({
          name: e,
          config: t
        }), null;
        o = n._config
      } return locales[e] = new Locale(mergeConfigs(o, t)), localeFamilies[e] && localeFamilies[e].forEach((function (e) {
      defineLocale(e.name, e.config)
    })), getSetGlobalLocale(e), locales[e]
  }
  return delete locales[e], null
}

function updateLocale(e, t) {
  if (null != t) {
    var n, o, r = baseConfig;
    null != locales[e] && null != locales[e].parentLocale ? locales[e].set(mergeConfigs(locales[e]._config, t)) : (null != (o = loadLocale(e)) && (r = o._config), t = mergeConfigs(r, t), null == o && (t.abbr = e), (n = new Locale(t)).parentLocale = locales[e], locales[e] = n), getSetGlobalLocale(e)
  } else null != locales[e] && (null != locales[e].parentLocale ? (locales[e] = locales[e].parentLocale, e === getSetGlobalLocale() && getSetGlobalLocale(e)) : null != locales[e] && delete locales[e]);
  return locales[e]
}

function getLocale(e) {
  var t;
  if (e && e._locale && e._locale._abbr && (e = e._locale._abbr), !e) return globalLocale;
  if (!isArray(e)) {
    if (t = loadLocale(e)) return t;
    e = [e]
  }
  return chooseLocale(e)
}

function listLocales() {
  return keys(locales)
}

function checkOverflow(e) {
  var t, n = e._a;
  return n && -2 === getParsingFlags(e).overflow && (t = n[MONTH] < 0 || n[MONTH] > 11 ? MONTH : n[DATE] < 1 || n[DATE] > daysInMonth(n[YEAR], n[MONTH]) ? DATE : n[HOUR] < 0 || n[HOUR] > 24 || 24 === n[HOUR] && (0 !== n[MINUTE] || 0 !== n[SECOND] || 0 !== n[MILLISECOND]) ? HOUR : n[MINUTE] < 0 || n[MINUTE] > 59 ? MINUTE : n[SECOND] < 0 || n[SECOND] > 59 ? SECOND : n[MILLISECOND] < 0 || n[MILLISECOND] > 999 ? MILLISECOND : -1, getParsingFlags(e)._overflowDayOfYear && (t < YEAR || t > DATE) && (t = DATE), getParsingFlags(e)._overflowWeeks && -1 === t && (t = WEEK), getParsingFlags(e)._overflowWeekday && -1 === t && (t = WEEKDAY), getParsingFlags(e).overflow = t), e
}
var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
  basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
  tzRegex = /Z|[+-]\d\d(?::?\d\d)?/,
  isoDates = [
    ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/],
    ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/],
    ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/],
    ["GGGG-[W]WW", /\d{4}-W\d\d/, !1],
    ["YYYY-DDD", /\d{4}-\d{3}/],
    ["YYYY-MM", /\d{4}-\d\d/, !1],
    ["YYYYYYMMDD", /[+-]\d{10}/],
    ["YYYYMMDD", /\d{8}/],
    ["GGGG[W]WWE", /\d{4}W\d{3}/],
    ["GGGG[W]WW", /\d{4}W\d{2}/, !1],
    ["YYYYDDD", /\d{7}/],
    ["YYYYMM", /\d{6}/, !1],
    ["YYYY", /\d{4}/, !1]
  ],
  isoTimes = [
    ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/],
    ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/],
    ["HH:mm:ss", /\d\d:\d\d:\d\d/],
    ["HH:mm", /\d\d:\d\d/],
    ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/],
    ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/],
    ["HHmmss", /\d\d\d\d\d\d/],
    ["HHmm", /\d\d\d\d/],
    ["HH", /\d\d/]
  ],
  aspNetJsonRegex = /^\/?Date\((-?\d+)/i,
  rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,
  obsOffsets = {
    UT: 0,
    GMT: 0,
    EDT: -240,
    EST: -300,
    CDT: -300,
    CST: -360,
    MDT: -360,
    MST: -420,
    PDT: -420,
    PST: -480
  };

function configFromISO(e) {
  var t, n, o, r, i, a, s = e._i,
    c = extendedIsoRegex.exec(s) || basicIsoRegex.exec(s),
    l = isoDates.length,
    u = isoTimes.length;
  if (c) {
    for (getParsingFlags(e).iso = !0, t = 0, n = l; t < n; t++)
      if (isoDates[t][1].exec(c[1])) {
        r = isoDates[t][0], o = !1 !== isoDates[t][2];
        break
      } if (null == r) return void(e._isValid = !1);
    if (c[3]) {
      for (t = 0, n = u; t < n; t++)
        if (isoTimes[t][1].exec(c[3])) {
          i = (c[2] || " ") + isoTimes[t][0];
          break
        } if (null == i) return void(e._isValid = !1)
    }
    if (!o && null != i) return void(e._isValid = !1);
    if (c[4]) {
      if (!tzRegex.exec(c[4])) return void(e._isValid = !1);
      a = "Z"
    }
    e._f = r + (i || "") + (a || ""), configFromStringAndFormat(e)
  } else e._isValid = !1
}

function extractFromRFC2822Strings(e, t, n, o, r, i) {
  var a = [untruncateYear(e), defaultLocaleMonthsShort.indexOf(t), parseInt(n, 10), parseInt(o, 10), parseInt(r, 10)];
  return i && a.push(parseInt(i, 10)), a
}

function untruncateYear(e) {
  var t = parseInt(e, 10);
  return t <= 49 ? 2e3 + t : t <= 999 ? 1900 + t : t
}

function preprocessRFC2822(e) {
  return e.replace(/\([^()]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "")
}

function checkWeekday(e, t, n) {
  if (e && defaultLocaleWeekdaysShort.indexOf(e) !== new Date(t[0], t[1], t[2]).getDay()) return getParsingFlags(n).weekdayMismatch = !0, n._isValid = !1, !1;
  return !0
}

function calculateOffset(e, t, n) {
  if (e) return obsOffsets[e];
  if (t) return 0;
  var o = parseInt(n, 10),
    r = o % 100;
  return 60 * ((o - r) / 100) + r
}

function configFromRFC2822(e) {
  var t, n = rfc2822.exec(preprocessRFC2822(e._i));
  if (n) {
    if (t = extractFromRFC2822Strings(n[4], n[3], n[2], n[5], n[6], n[7]), !checkWeekday(n[1], t, e)) return;
    e._a = t, e._tzm = calculateOffset(n[8], n[9], n[10]), e._d = createUTCDate.apply(null, e._a), e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), getParsingFlags(e).rfc2822 = !0
  } else e._isValid = !1
}

function configFromString(e) {
  var t = aspNetJsonRegex.exec(e._i);
  null === t ? (configFromISO(e), !1 === e._isValid && (delete e._isValid, configFromRFC2822(e), !1 === e._isValid && (delete e._isValid, e._strict ? e._isValid = !1 : hooks.createFromInputFallback(e)))) : e._d = new Date(+t[1])
}

function defaults(e, t, n) {
  return null != e ? e : null != t ? t : n
}

function currentDateArray(e) {
  var t = new Date(hooks.now());
  return e._useUTC ? [t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()] : [t.getFullYear(), t.getMonth(), t.getDate()]
}

function configFromArray(e) {
  var t, n, o, r, i, a = [];
  if (!e._d) {
    for (o = currentDateArray(e), e._w && null == e._a[DATE] && null == e._a[MONTH] && dayOfYearFromWeekInfo(e), null != e._dayOfYear && (i = defaults(e._a[YEAR], o[YEAR]), (e._dayOfYear > daysInYear(i) || 0 === e._dayOfYear) && (getParsingFlags(e)._overflowDayOfYear = !0), n = createUTCDate(i, 0, e._dayOfYear), e._a[MONTH] = n.getUTCMonth(), e._a[DATE] = n.getUTCDate()), t = 0; t < 3 && null == e._a[t]; ++t) e._a[t] = a[t] = o[t];
    for (; t < 7; t++) e._a[t] = a[t] = null == e._a[t] ? 2 === t ? 1 : 0 : e._a[t];
    24 === e._a[HOUR] && 0 === e._a[MINUTE] && 0 === e._a[SECOND] && 0 === e._a[MILLISECOND] && (e._nextDay = !0, e._a[HOUR] = 0), e._d = (e._useUTC ? createUTCDate : createDate).apply(null, a), r = e._useUTC ? e._d.getUTCDay() : e._d.getDay(), null != e._tzm && e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), e._nextDay && (e._a[HOUR] = 24), e._w && void 0 !== e._w.d && e._w.d !== r && (getParsingFlags(e).weekdayMismatch = !0)
  }
}

function dayOfYearFromWeekInfo(e) {
  var t, n, o, r, i, a, s, c, l;
  null != (t = e._w).GG || null != t.W || null != t.E ? (i = 1, a = 4, n = defaults(t.GG, e._a[YEAR], weekOfYear(createLocal(), 1, 4).year), o = defaults(t.W, 1), ((r = defaults(t.E, 1)) < 1 || r > 7) && (c = !0)) : (i = e._locale._week.dow, a = e._locale._week.doy, l = weekOfYear(createLocal(), i, a), n = defaults(t.gg, e._a[YEAR], l.year), o = defaults(t.w, l.week), null != t.d ? ((r = t.d) < 0 || r > 6) && (c = !0) : null != t.e ? (r = t.e + i, (t.e < 0 || t.e > 6) && (c = !0)) : r = i), o < 1 || o > weeksInYear(n, i, a) ? getParsingFlags(e)._overflowWeeks = !0 : null != c ? getParsingFlags(e)._overflowWeekday = !0 : (s = dayOfYearFromWeeks(n, o, r, i, a), e._a[YEAR] = s.year, e._dayOfYear = s.dayOfYear)
}

function configFromStringAndFormat(e) {
  if (e._f !== hooks.ISO_8601)
    if (e._f !== hooks.RFC_2822) {
      e._a = [], getParsingFlags(e).empty = !0;
      var t, n, o, r, i, a, s, c = "" + e._i,
        l = c.length,
        u = 0;
      for (s = (o = expandFormat(e._f, e._locale).match(formattingTokens) || []).length, t = 0; t < s; t++) r = o[t], (n = (c.match(getParseRegexForToken(r, e)) || [])[0]) && ((i = c.substr(0, c.indexOf(n))).length > 0 && getParsingFlags(e).unusedInput.push(i), c = c.slice(c.indexOf(n) + n.length), u += n.length), formatTokenFunctions[r] ? (n ? getParsingFlags(e).empty = !1 : getParsingFlags(e).unusedTokens.push(r), addTimeToArrayFromToken(r, n, e)) : e._strict && !n && getParsingFlags(e).unusedTokens.push(r);
      getParsingFlags(e).charsLeftOver = l - u, c.length > 0 && getParsingFlags(e).unusedInput.push(c), e._a[HOUR] <= 12 && !0 === getParsingFlags(e).bigHour && e._a[HOUR] > 0 && (getParsingFlags(e).bigHour = void 0), getParsingFlags(e).parsedDateParts = e._a.slice(0), getParsingFlags(e).meridiem = e._meridiem, e._a[HOUR] = meridiemFixWrap(e._locale, e._a[HOUR], e._meridiem), null !== (a = getParsingFlags(e).era) && (e._a[YEAR] = e._locale.erasConvertYear(a, e._a[YEAR])), configFromArray(e), checkOverflow(e)
    } else configFromRFC2822(e);
  else configFromISO(e)
}

function meridiemFixWrap(e, t, n) {
  var o;
  return null == n ? t : null != e.meridiemHour ? e.meridiemHour(t, n) : null != e.isPM ? ((o = e.isPM(n)) && t < 12 && (t += 12), o || 12 !== t || (t = 0), t) : t
}

function configFromStringAndArray(e) {
  var t, n, o, r, i, a, s = !1,
    c = e._f.length;
  if (0 === c) return getParsingFlags(e).invalidFormat = !0, void(e._d = new Date(NaN));
  for (r = 0; r < c; r++) i = 0, a = !1, t = copyConfig({}, e), null != e._useUTC && (t._useUTC = e._useUTC), t._f = e._f[r], configFromStringAndFormat(t), isValid(t) && (a = !0), i += getParsingFlags(t).charsLeftOver, i += 10 * getParsingFlags(t).unusedTokens.length, getParsingFlags(t).score = i, s ? i < o && (o = i, n = t) : (null == o || i < o || a) && (o = i, n = t, a && (s = !0));
  extend(e, n || t)
}

function configFromObject(e) {
  if (!e._d) {
    var t = normalizeObjectUnits(e._i),
      n = void 0 === t.day ? t.date : t.day;
    e._a = map([t.year, t.month, n, t.hour, t.minute, t.second, t.millisecond], (function (e) {
      return e && parseInt(e, 10)
    })), configFromArray(e)
  }
}

function createFromConfig(e) {
  var t = new Moment(checkOverflow(prepareConfig(e)));
  return t._nextDay && (t.add(1, "d"), t._nextDay = void 0), t
}

function prepareConfig(e) {
  var t = e._i,
    n = e._f;
  return e._locale = e._locale || getLocale(e._l), null === t || void 0 === n && "" === t ? createInvalid({
    nullInput: !0
  }) : ("string" == typeof t && (e._i = t = e._locale.preparse(t)), isMoment(t) ? new Moment(checkOverflow(t)) : (isDate(t) ? e._d = t : isArray(n) ? configFromStringAndArray(e) : n ? configFromStringAndFormat(e) : configFromInput(e), isValid(e) || (e._d = null), e))
}

function configFromInput(e) {
  var t = e._i;
  isUndefined(t) ? e._d = new Date(hooks.now()) : isDate(t) ? e._d = new Date(t.valueOf()) : "string" == typeof t ? configFromString(e) : isArray(t) ? (e._a = map(t.slice(0), (function (e) {
    return parseInt(e, 10)
  })), configFromArray(e)) : isObject(t) ? configFromObject(e) : isNumber(t) ? e._d = new Date(t) : hooks.createFromInputFallback(e)
}

function createLocalOrUTC(e, t, n, o, r) {
  var i = {};
  return !0 !== t && !1 !== t || (o = t, t = void 0), !0 !== n && !1 !== n || (o = n, n = void 0), (isObject(e) && isObjectEmpty(e) || isArray(e) && 0 === e.length) && (e = void 0), i._isAMomentObject = !0, i._useUTC = i._isUTC = r, i._l = n, i._i = e, i._f = t, i._strict = o, createFromConfig(i)
}

function createLocal(e, t, n, o) {
  return createLocalOrUTC(e, t, n, o, !1)
}
hooks.createFromInputFallback = deprecate("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", (function (e) {
  e._d = new Date(e._i + (e._useUTC ? " UTC" : ""))
})), hooks.ISO_8601 = function () {}, hooks.RFC_2822 = function () {};
var prototypeMin = deprecate("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", (function () {
    var e = createLocal.apply(null, arguments);
    return this.isValid() && e.isValid() ? e < this ? this : e : createInvalid()
  })),
  prototypeMax = deprecate("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", (function () {
    var e = createLocal.apply(null, arguments);
    return this.isValid() && e.isValid() ? e > this ? this : e : createInvalid()
  }));

function pickBy(e, t) {
  var n, o;
  if (1 === t.length && isArray(t[0]) && (t = t[0]), !t.length) return createLocal();
  for (n = t[0], o = 1; o < t.length; ++o) t[o].isValid() && !t[o][e](n) || (n = t[o]);
  return n
}

function min() {
  var e = [].slice.call(arguments, 0);
  return pickBy("isBefore", e)
}

function max() {
  var e = [].slice.call(arguments, 0);
  return pickBy("isAfter", e)
}
var now = function () {
    return Date.now ? Date.now() : +new Date
  },
  ordering = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"];

function isDurationValid(e) {
  var t, n, o = !1,
    r = ordering.length;
  for (t in e)
    if (hasOwnProp(e, t) && (-1 === indexOf.call(ordering, t) || null != e[t] && isNaN(e[t]))) return !1;
  for (n = 0; n < r; ++n)
    if (e[ordering[n]]) {
      if (o) return !1;
      parseFloat(e[ordering[n]]) !== toInt(e[ordering[n]]) && (o = !0)
    } return !0
}

function isValid$1() {
  return this._isValid
}

function createInvalid$1() {
  return createDuration(NaN)
}

function Duration(e) {
  var t = normalizeObjectUnits(e),
    n = t.year || 0,
    o = t.quarter || 0,
    r = t.month || 0,
    i = t.week || t.isoWeek || 0,
    a = t.day || 0,
    s = t.hour || 0,
    c = t.minute || 0,
    l = t.second || 0,
    u = t.millisecond || 0;
  this._isValid = isDurationValid(t), this._milliseconds = +u + 1e3 * l + 6e4 * c + 1e3 * s * 60 * 60, this._days = +a + 7 * i, this._months = +r + 3 * o + 12 * n, this._data = {}, this._locale = getLocale(), this._bubble()
}

function isDuration(e) {
  return e instanceof Duration
}

function absRound(e) {
  return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e)
}

function compareArrays(e, t, n) {
  var o, r = Math.min(e.length, t.length),
    i = Math.abs(e.length - t.length),
    a = 0;
  for (o = 0; o < r; o++)(n && e[o] !== t[o] || !n && toInt(e[o]) !== toInt(t[o])) && a++;
  return a + i
}

function offset(e, t) {
  addFormatToken(e, 0, 0, (function () {
    var e = this.utcOffset(),
      n = "+";
    return e < 0 && (e = -e, n = "-"), n + zeroFill(~~(e / 60), 2) + t + zeroFill(~~e % 60, 2)
  }))
}
offset("Z", ":"), offset("ZZ", ""), addRegexToken("Z", matchShortOffset), addRegexToken("ZZ", matchShortOffset), addParseToken(["Z", "ZZ"], (function (e, t, n) {
  n._useUTC = !0, n._tzm = offsetFromString(matchShortOffset, e)
}));
var chunkOffset = /([\+\-]|\d\d)/gi;

function offsetFromString(e, t) {
  var n, o, r = (t || "").match(e);
  return null === r ? null : 0 === (o = 60 * (n = ((r[r.length - 1] || []) + "").match(chunkOffset) || ["-", 0, 0])[1] + toInt(n[2])) ? 0 : "+" === n[0] ? o : -o
}

function cloneWithOffset(e, t) {
  var n, o;
  return t._isUTC ? (n = t.clone(), o = (isMoment(e) || isDate(e) ? e.valueOf() : createLocal(e).valueOf()) - n.valueOf(), n._d.setTime(n._d.valueOf() + o), hooks.updateOffset(n, !1), n) : createLocal(e).local()
}

function getDateOffset(e) {
  return -Math.round(e._d.getTimezoneOffset())
}

function getSetOffset(e, t, n) {
  var o, r = this._offset || 0;
  if (!this.isValid()) return null != e ? this : NaN;
  if (null != e) {
    if ("string" == typeof e) {
      if (null === (e = offsetFromString(matchShortOffset, e))) return this
    } else Math.abs(e) < 16 && !n && (e *= 60);
    return !this._isUTC && t && (o = getDateOffset(this)), this._offset = e, this._isUTC = !0, null != o && this.add(o, "m"), r !== e && (!t || this._changeInProgress ? addSubtract(this, createDuration(e - r, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, hooks.updateOffset(this, !0), this._changeInProgress = null)), this
  }
  return this._isUTC ? r : getDateOffset(this)
}

function getSetZone(e, t) {
  return null != e ? ("string" != typeof e && (e = -e), this.utcOffset(e, t), this) : -this.utcOffset()
}

function setOffsetToUTC(e) {
  return this.utcOffset(0, e)
}

function setOffsetToLocal(e) {
  return this._isUTC && (this.utcOffset(0, e), this._isUTC = !1, e && this.subtract(getDateOffset(this), "m")), this
}

function setOffsetToParsedOffset() {
  if (null != this._tzm) this.utcOffset(this._tzm, !1, !0);
  else if ("string" == typeof this._i) {
    var e = offsetFromString(matchOffset, this._i);
    null != e ? this.utcOffset(e) : this.utcOffset(0, !0)
  }
  return this
}

function hasAlignedHourOffset(e) {
  return !!this.isValid() && (e = e ? createLocal(e).utcOffset() : 0, (this.utcOffset() - e) % 60 == 0)
}

function isDaylightSavingTime() {
  return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset()
}

function isDaylightSavingTimeShifted() {
  if (!isUndefined(this._isDSTShifted)) return this._isDSTShifted;
  var e, t = {};
  return copyConfig(t, this), (t = prepareConfig(t))._a ? (e = t._isUTC ? createUTC(t._a) : createLocal(t._a), this._isDSTShifted = this.isValid() && compareArrays(t._a, e.toArray()) > 0) : this._isDSTShifted = !1, this._isDSTShifted
}

function isLocal() {
  return !!this.isValid() && !this._isUTC
}

function isUtcOffset() {
  return !!this.isValid() && this._isUTC
}

function isUtc() {
  return !!this.isValid() && (this._isUTC && 0 === this._offset)
}
hooks.updateOffset = function () {};
var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,
  isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;

function createDuration(e, t) {
  var n, o, r, i = e,
    a = null;
  return isDuration(e) ? i = {
    ms: e._milliseconds,
    d: e._days,
    M: e._months
  } : isNumber(e) || !isNaN(+e) ? (i = {}, t ? i[t] = +e : i.milliseconds = +e) : (a = aspNetRegex.exec(e)) ? (n = "-" === a[1] ? -1 : 1, i = {
    y: 0,
    d: toInt(a[DATE]) * n,
    h: toInt(a[HOUR]) * n,
    m: toInt(a[MINUTE]) * n,
    s: toInt(a[SECOND]) * n,
    ms: toInt(absRound(1e3 * a[MILLISECOND])) * n
  }) : (a = isoRegex.exec(e)) ? (n = "-" === a[1] ? -1 : 1, i = {
    y: parseIso(a[2], n),
    M: parseIso(a[3], n),
    w: parseIso(a[4], n),
    d: parseIso(a[5], n),
    h: parseIso(a[6], n),
    m: parseIso(a[7], n),
    s: parseIso(a[8], n)
  }) : null == i ? i = {} : "object" == typeof i && ("from" in i || "to" in i) && (r = momentsDifference(createLocal(i.from), createLocal(i.to)), (i = {}).ms = r.milliseconds, i.M = r.months), o = new Duration(i), isDuration(e) && hasOwnProp(e, "_locale") && (o._locale = e._locale), isDuration(e) && hasOwnProp(e, "_isValid") && (o._isValid = e._isValid), o
}

function parseIso(e, t) {
  var n = e && parseFloat(e.replace(",", "."));
  return (isNaN(n) ? 0 : n) * t
}

function positiveMomentsDifference(e, t) {
  var n = {};
  return n.months = t.month() - e.month() + 12 * (t.year() - e.year()), e.clone().add(n.months, "M").isAfter(t) && --n.months, n.milliseconds = +t - +e.clone().add(n.months, "M"), n
}

function momentsDifference(e, t) {
  var n;
  return e.isValid() && t.isValid() ? (t = cloneWithOffset(t, e), e.isBefore(t) ? n = positiveMomentsDifference(e, t) : ((n = positiveMomentsDifference(t, e)).milliseconds = -n.milliseconds, n.months = -n.months), n) : {
    milliseconds: 0,
    months: 0
  }
}

function createAdder(e, t) {
  return function (n, o) {
    var r;
    return null === o || isNaN(+o) || (deprecateSimple(t, "moment()." + t + "(period, number) is deprecated. Please use moment()." + t + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), r = n, n = o, o = r), addSubtract(this, createDuration(n, o), e), this
  }
}

function addSubtract(e, t, n, o) {
  var r = t._milliseconds,
    i = absRound(t._days),
    a = absRound(t._months);
  e.isValid() && (o = null == o || o, a && setMonth(e, get(e, "Month") + a * n), i && set$1(e, "Date", get(e, "Date") + i * n), r && e._d.setTime(e._d.valueOf() + r * n), o && hooks.updateOffset(e, i || a))
}
createDuration.fn = Duration.prototype, createDuration.invalid = createInvalid$1;
var add = createAdder(1, "add"),
  subtract = createAdder(-1, "subtract");

function isString(e) {
  return "string" == typeof e || e instanceof String
}

function isMomentInput(e) {
  return isMoment(e) || isDate(e) || isString(e) || isNumber(e) || isNumberOrStringArray(e) || isMomentInputObject(e) || null == e
}

function isMomentInputObject(e) {
  var t, n = isObject(e) && !isObjectEmpty(e),
    o = !1,
    r = ["years", "year", "y", "months", "month", "M", "days", "day", "d", "dates", "date", "D", "hours", "hour", "h", "minutes", "minute", "m", "seconds", "second", "s", "milliseconds", "millisecond", "ms"],
    i = r.length;
  for (t = 0; t < i; t += 1) o = o || hasOwnProp(e, r[t]);
  return n && o
}

function isNumberOrStringArray(e) {
  var t = isArray(e),
    n = !1;
  return t && (n = 0 === e.filter((function (t) {
    return !isNumber(t) && isString(e)
  })).length), t && n
}

function isCalendarSpec(e) {
  var t, n = isObject(e) && !isObjectEmpty(e),
    o = !1,
    r = ["sameDay", "nextDay", "lastDay", "nextWeek", "lastWeek", "sameElse"];
  for (t = 0; t < r.length; t += 1) o = o || hasOwnProp(e, r[t]);
  return n && o
}

function getCalendarFormat(e, t) {
  var n = e.diff(t, "days", !0);
  return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse"
}

function calendar$1(e, t) {
  1 === arguments.length && (arguments[0] ? isMomentInput(arguments[0]) ? (e = arguments[0], t = void 0) : isCalendarSpec(arguments[0]) && (t = arguments[0], e = void 0) : (e = void 0, t = void 0));
  var n = e || createLocal(),
    o = cloneWithOffset(n, this).startOf("day"),
    r = hooks.calendarFormat(this, o) || "sameElse",
    i = t && (isFunction(t[r]) ? t[r].call(this, n) : t[r]);
  return this.format(i || this.localeData().calendar(r, this, createLocal(n)))
}

function clone() {
  return new Moment(this)
}

function isAfter(e, t) {
  var n = isMoment(e) ? e : createLocal(e);
  return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = normalizeUnits(t) || "millisecond") ? this.valueOf() > n.valueOf() : n.valueOf() < this.clone().startOf(t).valueOf())
}

function isBefore(e, t) {
  var n = isMoment(e) ? e : createLocal(e);
  return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = normalizeUnits(t) || "millisecond") ? this.valueOf() < n.valueOf() : this.clone().endOf(t).valueOf() < n.valueOf())
}

function isBetween(e, t, n, o) {
  var r = isMoment(e) ? e : createLocal(e),
    i = isMoment(t) ? t : createLocal(t);
  return !!(this.isValid() && r.isValid() && i.isValid()) && (("(" === (o = o || "()")[0] ? this.isAfter(r, n) : !this.isBefore(r, n)) && (")" === o[1] ? this.isBefore(i, n) : !this.isAfter(i, n)))
}

function isSame(e, t) {
  var n, o = isMoment(e) ? e : createLocal(e);
  return !(!this.isValid() || !o.isValid()) && ("millisecond" === (t = normalizeUnits(t) || "millisecond") ? this.valueOf() === o.valueOf() : (n = o.valueOf(), this.clone().startOf(t).valueOf() <= n && n <= this.clone().endOf(t).valueOf()))
}

function isSameOrAfter(e, t) {
  return this.isSame(e, t) || this.isAfter(e, t)
}

function isSameOrBefore(e, t) {
  return this.isSame(e, t) || this.isBefore(e, t)
}

function diff(e, t, n) {
  var o, r, i;
  if (!this.isValid()) return NaN;
  if (!(o = cloneWithOffset(e, this)).isValid()) return NaN;
  switch (r = 6e4 * (o.utcOffset() - this.utcOffset()), t = normalizeUnits(t)) {
    case "year":
      i = monthDiff(this, o) / 12;
      break;
    case "month":
      i = monthDiff(this, o);
      break;
    case "quarter":
      i = monthDiff(this, o) / 3;
      break;
    case "second":
      i = (this - o) / 1e3;
      break;
    case "minute":
      i = (this - o) / 6e4;
      break;
    case "hour":
      i = (this - o) / 36e5;
      break;
    case "day":
      i = (this - o - r) / 864e5;
      break;
    case "week":
      i = (this - o - r) / 6048e5;
      break;
    default:
      i = this - o
  }
  return n ? i : absFloor(i)
}

function monthDiff(e, t) {
  if (e.date() < t.date()) return -monthDiff(t, e);
  var n = 12 * (t.year() - e.year()) + (t.month() - e.month()),
    o = e.clone().add(n, "months");
  return -(n + (t - o < 0 ? (t - o) / (o - e.clone().add(n - 1, "months")) : (t - o) / (e.clone().add(n + 1, "months") - o))) || 0
}

function toString() {
  return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")
}

function toISOString(e) {
  if (!this.isValid()) return null;
  var t = !0 !== e,
    n = t ? this.clone().utc() : this;
  return n.year() < 0 || n.year() > 9999 ? formatMoment(n, t ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ") : isFunction(Date.prototype.toISOString) ? t ? this.toDate().toISOString() : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3).toISOString().replace("Z", formatMoment(n, "Z")) : formatMoment(n, t ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ")
}

function inspect() {
  if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)";
  var e, t, n, o = "moment",
    r = "";
  return this.isLocal() || (o = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", r = "Z"), e = "[" + o + '("]', t = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", "-MM-DD[T]HH:mm:ss.SSS", n = r + '[")]', this.format(e + t + "-MM-DD[T]HH:mm:ss.SSS" + n)
}

function format(e) {
  e || (e = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat);
  var t = formatMoment(this, e);
  return this.localeData().postformat(t)
}

function from(e, t) {
  return this.isValid() && (isMoment(e) && e.isValid() || createLocal(e).isValid()) ? createDuration({
    to: this,
    from: e
  }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate()
}

function fromNow(e) {
  return this.from(createLocal(), e)
}

function to(e, t) {
  return this.isValid() && (isMoment(e) && e.isValid() || createLocal(e).isValid()) ? createDuration({
    from: this,
    to: e
  }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate()
}

function toNow(e) {
  return this.to(createLocal(), e)
}

function locale(e) {
  var t;
  return void 0 === e ? this._locale._abbr : (null != (t = getLocale(e)) && (this._locale = t), this)
}
hooks.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", hooks.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]";
var lang = deprecate("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", (function (e) {
  return void 0 === e ? this.localeData() : this.locale(e)
}));

function localeData() {
  return this._locale
}
var MS_PER_SECOND = 1e3,
  MS_PER_MINUTE = 60 * MS_PER_SECOND,
  MS_PER_HOUR = 60 * MS_PER_MINUTE,
  MS_PER_400_YEARS = 3506328 * MS_PER_HOUR;

function mod$1(e, t) {
  return (e % t + t) % t
}

function localStartOfDate(e, t, n) {
  return e < 100 && e >= 0 ? new Date(e + 400, t, n) - MS_PER_400_YEARS : new Date(e, t, n).valueOf()
}

function utcStartOfDate(e, t, n) {
  return e < 100 && e >= 0 ? Date.UTC(e + 400, t, n) - MS_PER_400_YEARS : Date.UTC(e, t, n)
}

function startOf(e) {
  var t, n;
  if (void 0 === (e = normalizeUnits(e)) || "millisecond" === e || !this.isValid()) return this;
  switch (n = this._isUTC ? utcStartOfDate : localStartOfDate, e) {
    case "year":
      t = n(this.year(), 0, 1);
      break;
    case "quarter":
      t = n(this.year(), this.month() - this.month() % 3, 1);
      break;
    case "month":
      t = n(this.year(), this.month(), 1);
      break;
    case "week":
      t = n(this.year(), this.month(), this.date() - this.weekday());
      break;
    case "isoWeek":
      t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));
      break;
    case "day":
    case "date":
      t = n(this.year(), this.month(), this.date());
      break;
    case "hour":
      t = this._d.valueOf(), t -= mod$1(t + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);
      break;
    case "minute":
      t = this._d.valueOf(), t -= mod$1(t, MS_PER_MINUTE);
      break;
    case "second":
      t = this._d.valueOf(), t -= mod$1(t, MS_PER_SECOND)
  }
  return this._d.setTime(t), hooks.updateOffset(this, !0), this
}

function endOf(e) {
  var t, n;
  if (void 0 === (e = normalizeUnits(e)) || "millisecond" === e || !this.isValid()) return this;
  switch (n = this._isUTC ? utcStartOfDate : localStartOfDate, e) {
    case "year":
      t = n(this.year() + 1, 0, 1) - 1;
      break;
    case "quarter":
      t = n(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;
      break;
    case "month":
      t = n(this.year(), this.month() + 1, 1) - 1;
      break;
    case "week":
      t = n(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;
      break;
    case "isoWeek":
      t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;
      break;
    case "day":
    case "date":
      t = n(this.year(), this.month(), this.date() + 1) - 1;
      break;
    case "hour":
      t = this._d.valueOf(), t += MS_PER_HOUR - mod$1(t + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;
      break;
    case "minute":
      t = this._d.valueOf(), t += MS_PER_MINUTE - mod$1(t, MS_PER_MINUTE) - 1;
      break;
    case "second":
      t = this._d.valueOf(), t += MS_PER_SECOND - mod$1(t, MS_PER_SECOND) - 1
  }
  return this._d.setTime(t), hooks.updateOffset(this, !0), this
}

function valueOf() {
  return this._d.valueOf() - 6e4 * (this._offset || 0)
}

function unix() {
  return Math.floor(this.valueOf() / 1e3)
}

function toDate() {
  return new Date(this.valueOf())
}

function toArray() {
  var e = this;
  return [e.year(), e.month(), e.date(), e.hour(), e.minute(), e.second(), e.millisecond()]
}

function toObject() {
  var e = this;
  return {
    years: e.year(),
    months: e.month(),
    date: e.date(),
    hours: e.hours(),
    minutes: e.minutes(),
    seconds: e.seconds(),
    milliseconds: e.milliseconds()
  }
}

function toJSON() {
  return this.isValid() ? this.toISOString() : null
}

function isValid$2() {
  return isValid(this)
}

function parsingFlags() {
  return extend({}, getParsingFlags(this))
}

function invalidAt() {
  return getParsingFlags(this).overflow
}

function creationData() {
  return {
    input: this._i,
    format: this._f,
    locale: this._locale,
    isUTC: this._isUTC,
    strict: this._strict
  }
}

function localeEras(e, t) {
  var n, o, r, i = this._eras || getLocale("en")._eras;
  for (n = 0, o = i.length; n < o; ++n) {
    if ("string" == typeof i[n].since) r = hooks(i[n].since).startOf("day"), i[n].since = r.valueOf();
    switch (typeof i[n].until) {
      case "undefined":
        i[n].until = 1 / 0;
        break;
      case "string":
        r = hooks(i[n].until).startOf("day").valueOf(), i[n].until = r.valueOf()
    }
  }
  return i
}

function localeErasParse(e, t, n) {
  var o, r, i, a, s, c = this.eras();
  for (e = e.toUpperCase(), o = 0, r = c.length; o < r; ++o)
    if (i = c[o].name.toUpperCase(), a = c[o].abbr.toUpperCase(), s = c[o].narrow.toUpperCase(), n) switch (t) {
      case "N":
      case "NN":
      case "NNN":
        if (a === e) return c[o];
        break;
      case "NNNN":
        if (i === e) return c[o];
        break;
      case "NNNNN":
        if (s === e) return c[o]
    } else if ([i, a, s].indexOf(e) >= 0) return c[o]
}

function localeErasConvertYear(e, t) {
  var n = e.since <= e.until ? 1 : -1;
  return void 0 === t ? hooks(e.since).year() : hooks(e.since).year() + (t - e.offset) * n
}

function getEraName() {
  var e, t, n, o = this.localeData().eras();
  for (e = 0, t = o.length; e < t; ++e) {
    if (n = this.clone().startOf("day").valueOf(), o[e].since <= n && n <= o[e].until) return o[e].name;
    if (o[e].until <= n && n <= o[e].since) return o[e].name
  }
  return ""
}

function getEraNarrow() {
  var e, t, n, o = this.localeData().eras();
  for (e = 0, t = o.length; e < t; ++e) {
    if (n = this.clone().startOf("day").valueOf(), o[e].since <= n && n <= o[e].until) return o[e].narrow;
    if (o[e].until <= n && n <= o[e].since) return o[e].narrow
  }
  return ""
}

function getEraAbbr() {
  var e, t, n, o = this.localeData().eras();
  for (e = 0, t = o.length; e < t; ++e) {
    if (n = this.clone().startOf("day").valueOf(), o[e].since <= n && n <= o[e].until) return o[e].abbr;
    if (o[e].until <= n && n <= o[e].since) return o[e].abbr
  }
  return ""
}

function getEraYear() {
  var e, t, n, o, r = this.localeData().eras();
  for (e = 0, t = r.length; e < t; ++e)
    if (n = r[e].since <= r[e].until ? 1 : -1, o = this.clone().startOf("day").valueOf(), r[e].since <= o && o <= r[e].until || r[e].until <= o && o <= r[e].since) return (this.year() - hooks(r[e].since).year()) * n + r[e].offset;
  return this.year()
}

function erasNameRegex(e) {
  return hasOwnProp(this, "_erasNameRegex") || computeErasParse.call(this), e ? this._erasNameRegex : this._erasRegex
}

function erasAbbrRegex(e) {
  return hasOwnProp(this, "_erasAbbrRegex") || computeErasParse.call(this), e ? this._erasAbbrRegex : this._erasRegex
}

function erasNarrowRegex(e) {
  return hasOwnProp(this, "_erasNarrowRegex") || computeErasParse.call(this), e ? this._erasNarrowRegex : this._erasRegex
}

function matchEraAbbr(e, t) {
  return t.erasAbbrRegex(e)
}

function matchEraName(e, t) {
  return t.erasNameRegex(e)
}

function matchEraNarrow(e, t) {
  return t.erasNarrowRegex(e)
}

function matchEraYearOrdinal(e, t) {
  return t._eraYearOrdinalRegex || matchUnsigned
}

function computeErasParse() {
  var e, t, n = [],
    o = [],
    r = [],
    i = [],
    a = this.eras();
  for (e = 0, t = a.length; e < t; ++e) o.push(regexEscape(a[e].name)), n.push(regexEscape(a[e].abbr)), r.push(regexEscape(a[e].narrow)), i.push(regexEscape(a[e].name)), i.push(regexEscape(a[e].abbr)), i.push(regexEscape(a[e].narrow));
  this._erasRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._erasNameRegex = new RegExp("^(" + o.join("|") + ")", "i"), this._erasAbbrRegex = new RegExp("^(" + n.join("|") + ")", "i"), this._erasNarrowRegex = new RegExp("^(" + r.join("|") + ")", "i")
}

function addWeekYearFormatToken(e, t) {
  addFormatToken(0, [e, e.length], 0, t)
}

function getSetWeekYear(e) {
  return getSetWeekYearHelper.call(this, e, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy)
}

function getSetISOWeekYear(e) {
  return getSetWeekYearHelper.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4)
}

function getISOWeeksInYear() {
  return weeksInYear(this.year(), 1, 4)
}

function getISOWeeksInISOWeekYear() {
  return weeksInYear(this.isoWeekYear(), 1, 4)
}

function getWeeksInYear() {
  var e = this.localeData()._week;
  return weeksInYear(this.year(), e.dow, e.doy)
}

function getWeeksInWeekYear() {
  var e = this.localeData()._week;
  return weeksInYear(this.weekYear(), e.dow, e.doy)
}

function getSetWeekYearHelper(e, t, n, o, r) {
  var i;
  return null == e ? weekOfYear(this, o, r).year : (t > (i = weeksInYear(e, o, r)) && (t = i), setWeekAll.call(this, e, t, n, o, r))
}

function setWeekAll(e, t, n, o, r) {
  var i = dayOfYearFromWeeks(e, t, n, o, r),
    a = createUTCDate(i.year, 0, i.dayOfYear);
  return this.year(a.getUTCFullYear()), this.month(a.getUTCMonth()), this.date(a.getUTCDate()), this
}

function getSetQuarter(e) {
  return null == e ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (e - 1) + this.month() % 3)
}
addFormatToken("N", 0, 0, "eraAbbr"), addFormatToken("NN", 0, 0, "eraAbbr"), addFormatToken("NNN", 0, 0, "eraAbbr"), addFormatToken("NNNN", 0, 0, "eraName"), addFormatToken("NNNNN", 0, 0, "eraNarrow"), addFormatToken("y", ["y", 1], "yo", "eraYear"), addFormatToken("y", ["yy", 2], 0, "eraYear"), addFormatToken("y", ["yyy", 3], 0, "eraYear"), addFormatToken("y", ["yyyy", 4], 0, "eraYear"), addRegexToken("N", matchEraAbbr), addRegexToken("NN", matchEraAbbr), addRegexToken("NNN", matchEraAbbr), addRegexToken("NNNN", matchEraName), addRegexToken("NNNNN", matchEraNarrow), addParseToken(["N", "NN", "NNN", "NNNN", "NNNNN"], (function (e, t, n, o) {
  var r = n._locale.erasParse(e, o, n._strict);
  r ? getParsingFlags(n).era = r : getParsingFlags(n).invalidEra = e
})), addRegexToken("y", matchUnsigned), addRegexToken("yy", matchUnsigned), addRegexToken("yyy", matchUnsigned), addRegexToken("yyyy", matchUnsigned), addRegexToken("yo", matchEraYearOrdinal), addParseToken(["y", "yy", "yyy", "yyyy"], YEAR), addParseToken(["yo"], (function (e, t, n, o) {
  var r;
  n._locale._eraYearOrdinalRegex && (r = e.match(n._locale._eraYearOrdinalRegex)), n._locale.eraYearOrdinalParse ? t[YEAR] = n._locale.eraYearOrdinalParse(e, r) : t[YEAR] = parseInt(e, 10)
})), addFormatToken(0, ["gg", 2], 0, (function () {
  return this.weekYear() % 100
})), addFormatToken(0, ["GG", 2], 0, (function () {
  return this.isoWeekYear() % 100
})), addWeekYearFormatToken("gggg", "weekYear"), addWeekYearFormatToken("ggggg", "weekYear"), addWeekYearFormatToken("GGGG", "isoWeekYear"), addWeekYearFormatToken("GGGGG", "isoWeekYear"), addUnitAlias("weekYear", "gg"), addUnitAlias("isoWeekYear", "GG"), addUnitPriority("weekYear", 1), addUnitPriority("isoWeekYear", 1), addRegexToken("G", matchSigned), addRegexToken("g", matchSigned), addRegexToken("GG", match1to2, match2), addRegexToken("gg", match1to2, match2), addRegexToken("GGGG", match1to4, match4), addRegexToken("gggg", match1to4, match4), addRegexToken("GGGGG", match1to6, match6), addRegexToken("ggggg", match1to6, match6), addWeekParseToken(["gggg", "ggggg", "GGGG", "GGGGG"], (function (e, t, n, o) {
  t[o.substr(0, 2)] = toInt(e)
})), addWeekParseToken(["gg", "GG"], (function (e, t, n, o) {
  t[o] = hooks.parseTwoDigitYear(e)
})), addFormatToken("Q", 0, "Qo", "quarter"), addUnitAlias("quarter", "Q"), addUnitPriority("quarter", 7), addRegexToken("Q", match1), addParseToken("Q", (function (e, t) {
  t[MONTH] = 3 * (toInt(e) - 1)
})), addFormatToken("D", ["DD", 2], "Do", "date"), addUnitAlias("date", "D"), addUnitPriority("date", 9), addRegexToken("D", match1to2), addRegexToken("DD", match1to2, match2), addRegexToken("Do", (function (e, t) {
  return e ? t._dayOfMonthOrdinalParse || t._ordinalParse : t._dayOfMonthOrdinalParseLenient
})), addParseToken(["D", "DD"], DATE), addParseToken("Do", (function (e, t) {
  t[DATE] = toInt(e.match(match1to2)[0])
}));
var getSetDayOfMonth = makeGetSet("Date", !0);

function getSetDayOfYear(e) {
  var t = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1;
  return null == e ? t : this.add(e - t, "d")
}
addFormatToken("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), addUnitAlias("dayOfYear", "DDD"), addUnitPriority("dayOfYear", 4), addRegexToken("DDD", match1to3), addRegexToken("DDDD", match3), addParseToken(["DDD", "DDDD"], (function (e, t, n) {
  n._dayOfYear = toInt(e)
})), addFormatToken("m", ["mm", 2], 0, "minute"), addUnitAlias("minute", "m"), addUnitPriority("minute", 14), addRegexToken("m", match1to2), addRegexToken("mm", match1to2, match2), addParseToken(["m", "mm"], MINUTE);
var getSetMinute = makeGetSet("Minutes", !1);
addFormatToken("s", ["ss", 2], 0, "second"), addUnitAlias("second", "s"), addUnitPriority("second", 15), addRegexToken("s", match1to2), addRegexToken("ss", match1to2, match2), addParseToken(["s", "ss"], SECOND);
var getSetSecond = makeGetSet("Seconds", !1),
  token, getSetMillisecond;
for (addFormatToken("S", 0, 0, (function () {
    return ~~(this.millisecond() / 100)
  })), addFormatToken(0, ["SS", 2], 0, (function () {
    return ~~(this.millisecond() / 10)
  })), addFormatToken(0, ["SSS", 3], 0, "millisecond"), addFormatToken(0, ["SSSS", 4], 0, (function () {
    return 10 * this.millisecond()
  })), addFormatToken(0, ["SSSSS", 5], 0, (function () {
    return 100 * this.millisecond()
  })), addFormatToken(0, ["SSSSSS", 6], 0, (function () {
    return 1e3 * this.millisecond()
  })), addFormatToken(0, ["SSSSSSS", 7], 0, (function () {
    return 1e4 * this.millisecond()
  })), addFormatToken(0, ["SSSSSSSS", 8], 0, (function () {
    return 1e5 * this.millisecond()
  })), addFormatToken(0, ["SSSSSSSSS", 9], 0, (function () {
    return 1e6 * this.millisecond()
  })), addUnitAlias("millisecond", "ms"), addUnitPriority("millisecond", 16), addRegexToken("S", match1to3, match1), addRegexToken("SS", match1to3, match2), addRegexToken("SSS", match1to3, match3), token = "SSSS"; token.length <= 9; token += "S") addRegexToken(token, matchUnsigned);

function parseMs(e, t) {
  t[MILLISECOND] = toInt(1e3 * ("0." + e))
}
for (token = "S"; token.length <= 9; token += "S") addParseToken(token, parseMs);

function getZoneAbbr() {
  return this._isUTC ? "UTC" : ""
}

function getZoneName() {
  return this._isUTC ? "Coordinated Universal Time" : ""
}
getSetMillisecond = makeGetSet("Milliseconds", !1), addFormatToken("z", 0, 0, "zoneAbbr"), addFormatToken("zz", 0, 0, "zoneName");
var proto = Moment.prototype;

function createUnix(e) {
  return createLocal(1e3 * e)
}

function createInZone() {
  return createLocal.apply(null, arguments).parseZone()
}

function preParsePostFormat(e) {
  return e
}
proto.add = add, proto.calendar = calendar$1, proto.clone = clone, proto.diff = diff, proto.endOf = endOf, proto.format = format, proto.from = from, proto.fromNow = fromNow, proto.to = to, proto.toNow = toNow, proto.get = stringGet, proto.invalidAt = invalidAt, proto.isAfter = isAfter, proto.isBefore = isBefore, proto.isBetween = isBetween, proto.isSame = isSame, proto.isSameOrAfter = isSameOrAfter, proto.isSameOrBefore = isSameOrBefore, proto.isValid = isValid$2, proto.lang = lang, proto.locale = locale, proto.localeData = localeData, proto.max = prototypeMax, proto.min = prototypeMin, proto.parsingFlags = parsingFlags, proto.set = stringSet, proto.startOf = startOf, proto.subtract = subtract, proto.toArray = toArray, proto.toObject = toObject, proto.toDate = toDate, proto.toISOString = toISOString, proto.inspect = inspect, "undefined" != typeof Symbol && null != Symbol.for && (proto[Symbol.for("nodejs.util.inspect.custom")] = function () {
  return "Moment<" + this.format() + ">"
}), proto.toJSON = toJSON, proto.toString = toString, proto.unix = unix, proto.valueOf = valueOf, proto.creationData = creationData, proto.eraName = getEraName, proto.eraNarrow = getEraNarrow, proto.eraAbbr = getEraAbbr, proto.eraYear = getEraYear, proto.year = getSetYear, proto.isLeapYear = getIsLeapYear, proto.weekYear = getSetWeekYear, proto.isoWeekYear = getSetISOWeekYear, proto.quarter = proto.quarters = getSetQuarter, proto.month = getSetMonth, proto.daysInMonth = getDaysInMonth, proto.week = proto.weeks = getSetWeek, proto.isoWeek = proto.isoWeeks = getSetISOWeek, proto.weeksInYear = getWeeksInYear, proto.weeksInWeekYear = getWeeksInWeekYear, proto.isoWeeksInYear = getISOWeeksInYear, proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear, proto.date = getSetDayOfMonth, proto.day = proto.days = getSetDayOfWeek, proto.weekday = getSetLocaleDayOfWeek, proto.isoWeekday = getSetISODayOfWeek, proto.dayOfYear = getSetDayOfYear, proto.hour = proto.hours = getSetHour, proto.minute = proto.minutes = getSetMinute, proto.second = proto.seconds = getSetSecond, proto.millisecond = proto.milliseconds = getSetMillisecond, proto.utcOffset = getSetOffset, proto.utc = setOffsetToUTC, proto.local = setOffsetToLocal, proto.parseZone = setOffsetToParsedOffset, proto.hasAlignedHourOffset = hasAlignedHourOffset, proto.isDST = isDaylightSavingTime, proto.isLocal = isLocal, proto.isUtcOffset = isUtcOffset, proto.isUtc = isUtc, proto.isUTC = isUtc, proto.zoneAbbr = getZoneAbbr, proto.zoneName = getZoneName, proto.dates = deprecate("dates accessor is deprecated. Use date instead.", getSetDayOfMonth), proto.months = deprecate("months accessor is deprecated. Use month instead", getSetMonth), proto.years = deprecate("years accessor is deprecated. Use year instead", getSetYear), proto.zone = deprecate("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", getSetZone), proto.isDSTShifted = deprecate("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", isDaylightSavingTimeShifted);
var proto$1 = Locale.prototype;

function get$1(e, t, n, o) {
  var r = getLocale(),
    i = createUTC().set(o, t);
  return r[n](i, e)
}

function listMonthsImpl(e, t, n) {
  if (isNumber(e) && (t = e, e = void 0), e = e || "", null != t) return get$1(e, t, n, "month");
  var o, r = [];
  for (o = 0; o < 12; o++) r[o] = get$1(e, o, n, "month");
  return r
}

function listWeekdaysImpl(e, t, n, o) {
  "boolean" == typeof e ? (isNumber(t) && (n = t, t = void 0), t = t || "") : (n = t = e, e = !1, isNumber(t) && (n = t, t = void 0), t = t || "");
  var r, i = getLocale(),
    a = e ? i._week.dow : 0,
    s = [];
  if (null != n) return get$1(t, (n + a) % 7, o, "day");
  for (r = 0; r < 7; r++) s[r] = get$1(t, (r + a) % 7, o, "day");
  return s
}

function listMonths(e, t) {
  return listMonthsImpl(e, t, "months")
}

function listMonthsShort(e, t) {
  return listMonthsImpl(e, t, "monthsShort")
}

function listWeekdays(e, t, n) {
  return listWeekdaysImpl(e, t, n, "weekdays")
}

function listWeekdaysShort(e, t, n) {
  return listWeekdaysImpl(e, t, n, "weekdaysShort")
}

function listWeekdaysMin(e, t, n) {
  return listWeekdaysImpl(e, t, n, "weekdaysMin")
}
proto$1.calendar = calendar, proto$1.longDateFormat = longDateFormat, proto$1.invalidDate = invalidDate, proto$1.ordinal = ordinal, proto$1.preparse = preParsePostFormat, proto$1.postformat = preParsePostFormat, proto$1.relativeTime = relativeTime, proto$1.pastFuture = pastFuture, proto$1.set = set, proto$1.eras = localeEras, proto$1.erasParse = localeErasParse, proto$1.erasConvertYear = localeErasConvertYear, proto$1.erasAbbrRegex = erasAbbrRegex, proto$1.erasNameRegex = erasNameRegex, proto$1.erasNarrowRegex = erasNarrowRegex, proto$1.months = localeMonths, proto$1.monthsShort = localeMonthsShort, proto$1.monthsParse = localeMonthsParse, proto$1.monthsRegex = monthsRegex, proto$1.monthsShortRegex = monthsShortRegex, proto$1.week = localeWeek, proto$1.firstDayOfYear = localeFirstDayOfYear, proto$1.firstDayOfWeek = localeFirstDayOfWeek, proto$1.weekdays = localeWeekdays, proto$1.weekdaysMin = localeWeekdaysMin, proto$1.weekdaysShort = localeWeekdaysShort, proto$1.weekdaysParse = localeWeekdaysParse, proto$1.weekdaysRegex = weekdaysRegex, proto$1.weekdaysShortRegex = weekdaysShortRegex, proto$1.weekdaysMinRegex = weekdaysMinRegex, proto$1.isPM = localeIsPM, proto$1.meridiem = localeMeridiem, getSetGlobalLocale("en", {
  eras: [{
    since: "0001-01-01",
    until: 1 / 0,
    offset: 1,
    name: "Anno Domini",
    narrow: "AD",
    abbr: "AD"
  }, {
    since: "0000-12-31",
    until: -1 / 0,
    offset: 1,
    name: "Before Christ",
    narrow: "BC",
    abbr: "BC"
  }],
  dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
  ordinal: function (e) {
    var t = e % 10;
    return e + (1 === toInt(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th")
  }
}), hooks.lang = deprecate("moment.lang is deprecated. Use moment.locale instead.", getSetGlobalLocale), hooks.langData = deprecate("moment.langData is deprecated. Use moment.localeData instead.", getLocale);
var mathAbs = Math.abs;

function abs() {
  var e = this._data;
  return this._milliseconds = mathAbs(this._milliseconds), this._days = mathAbs(this._days), this._months = mathAbs(this._months), e.milliseconds = mathAbs(e.milliseconds), e.seconds = mathAbs(e.seconds), e.minutes = mathAbs(e.minutes), e.hours = mathAbs(e.hours), e.months = mathAbs(e.months), e.years = mathAbs(e.years), this
}

function addSubtract$1(e, t, n, o) {
  var r = createDuration(t, n);
  return e._milliseconds += o * r._milliseconds, e._days += o * r._days, e._months += o * r._months, e._bubble()
}

function add$1(e, t) {
  return addSubtract$1(this, e, t, 1)
}

function subtract$1(e, t) {
  return addSubtract$1(this, e, t, -1)
}

function absCeil(e) {
  return e < 0 ? Math.floor(e) : Math.ceil(e)
}

function bubble() {
  var e, t, n, o, r, i = this._milliseconds,
    a = this._days,
    s = this._months,
    c = this._data;
  return i >= 0 && a >= 0 && s >= 0 || i <= 0 && a <= 0 && s <= 0 || (i += 864e5 * absCeil(monthsToDays(s) + a), a = 0, s = 0), c.milliseconds = i % 1e3, e = absFloor(i / 1e3), c.seconds = e % 60, t = absFloor(e / 60), c.minutes = t % 60, n = absFloor(t / 60), c.hours = n % 24, a += absFloor(n / 24), s += r = absFloor(daysToMonths(a)), a -= absCeil(monthsToDays(r)), o = absFloor(s / 12), s %= 12, c.days = a, c.months = s, c.years = o, this
}

function daysToMonths(e) {
  return 4800 * e / 146097
}

function monthsToDays(e) {
  return 146097 * e / 4800
}

function as(e) {
  if (!this.isValid()) return NaN;
  var t, n, o = this._milliseconds;
  if ("month" === (e = normalizeUnits(e)) || "quarter" === e || "year" === e) switch (t = this._days + o / 864e5, n = this._months + daysToMonths(t), e) {
    case "month":
      return n;
    case "quarter":
      return n / 3;
    case "year":
      return n / 12
  } else switch (t = this._days + Math.round(monthsToDays(this._months)), e) {
    case "week":
      return t / 7 + o / 6048e5;
    case "day":
      return t + o / 864e5;
    case "hour":
      return 24 * t + o / 36e5;
    case "minute":
      return 1440 * t + o / 6e4;
    case "second":
      return 86400 * t + o / 1e3;
    case "millisecond":
      return Math.floor(864e5 * t) + o;
    default:
      throw new Error("Unknown unit " + e)
  }
}

function valueOf$1() {
  return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * toInt(this._months / 12) : NaN
}

function makeAs(e) {
  return function () {
    return this.as(e)
  }
}
var asMilliseconds = makeAs("ms"),
  asSeconds = makeAs("s"),
  asMinutes = makeAs("m"),
  asHours = makeAs("h"),
  asDays = makeAs("d"),
  asWeeks = makeAs("w"),
  asMonths = makeAs("M"),
  asQuarters = makeAs("Q"),
  asYears = makeAs("y");

function clone$1() {
  return createDuration(this)
}

function get$2(e) {
  return e = normalizeUnits(e), this.isValid() ? this[e + "s"]() : NaN
}

function makeGetter(e) {
  return function () {
    return this.isValid() ? this._data[e] : NaN
  }
}
var milliseconds = makeGetter("milliseconds"),
  seconds = makeGetter("seconds"),
  minutes = makeGetter("minutes"),
  hours = makeGetter("hours"),
  days = makeGetter("days"),
  months = makeGetter("months"),
  years = makeGetter("years");

function weeks() {
  return absFloor(this.days() / 7)
}
var round = Math.round,
  thresholds = {
    ss: 44,
    s: 45,
    m: 45,
    h: 22,
    d: 26,
    w: null,
    M: 11
  };

function substituteTimeAgo(e, t, n, o, r) {
  return r.relativeTime(t || 1, !!n, e, o)
}

function relativeTime$1(e, t, n, o) {
  var r = createDuration(e).abs(),
    i = round(r.as("s")),
    a = round(r.as("m")),
    s = round(r.as("h")),
    c = round(r.as("d")),
    l = round(r.as("M")),
    u = round(r.as("w")),
    d = round(r.as("y")),
    p = i <= n.ss && ["s", i] || i < n.s && ["ss", i] || a <= 1 && ["m"] || a < n.m && ["mm", a] || s <= 1 && ["h"] || s < n.h && ["hh", s] || c <= 1 && ["d"] || c < n.d && ["dd", c];
  return null != n.w && (p = p || u <= 1 && ["w"] || u < n.w && ["ww", u]), (p = p || l <= 1 && ["M"] || l < n.M && ["MM", l] || d <= 1 && ["y"] || ["yy", d])[2] = t, p[3] = +e > 0, p[4] = o, substituteTimeAgo.apply(null, p)
}

function getSetRelativeTimeRounding(e) {
  return void 0 === e ? round : "function" == typeof e && (round = e, !0)
}

function getSetRelativeTimeThreshold(e, t) {
  return void 0 !== thresholds[e] && (void 0 === t ? thresholds[e] : (thresholds[e] = t, "s" === e && (thresholds.ss = t - 1), !0))
}

function humanize(e, t) {
  if (!this.isValid()) return this.localeData().invalidDate();
  var n, o, r = !1,
    i = thresholds;
  return "object" == typeof e && (t = e, e = !1), "boolean" == typeof e && (r = e), "object" == typeof t && (i = Object.assign({}, thresholds, t), null != t.s && null == t.ss && (i.ss = t.s - 1)), o = relativeTime$1(this, !r, i, n = this.localeData()), r && (o = n.pastFuture(+this, o)), n.postformat(o)
}
var abs$1 = Math.abs;

function sign(e) {
  return (e > 0) - (e < 0) || +e
}

function toISOString$1() {
  if (!this.isValid()) return this.localeData().invalidDate();
  var e, t, n, o, r, i, a, s, c = abs$1(this._milliseconds) / 1e3,
    l = abs$1(this._days),
    u = abs$1(this._months),
    d = this.asSeconds();
  return d ? (e = absFloor(c / 60), t = absFloor(e / 60), c %= 60, e %= 60, n = absFloor(u / 12), u %= 12, o = c ? c.toFixed(3).replace(/\.?0+$/, "") : "", r = d < 0 ? "-" : "", i = sign(this._months) !== sign(d) ? "-" : "", a = sign(this._days) !== sign(d) ? "-" : "", s = sign(this._milliseconds) !== sign(d) ? "-" : "", r + "P" + (n ? i + n + "Y" : "") + (u ? i + u + "M" : "") + (l ? a + l + "D" : "") + (t || e || c ? "T" : "") + (t ? s + t + "H" : "") + (e ? s + e + "M" : "") + (c ? s + o + "S" : "")) : "P0D"
}
var proto$2 = Duration.prototype;
proto$2.isValid = isValid$1, proto$2.abs = abs, proto$2.add = add$1, proto$2.subtract = subtract$1, proto$2.as = as, proto$2.asMilliseconds = asMilliseconds, proto$2.asSeconds = asSeconds, proto$2.asMinutes = asMinutes, proto$2.asHours = asHours, proto$2.asDays = asDays, proto$2.asWeeks = asWeeks, proto$2.asMonths = asMonths, proto$2.asQuarters = asQuarters, proto$2.asYears = asYears, proto$2.valueOf = valueOf$1, proto$2._bubble = bubble, proto$2.clone = clone$1, proto$2.get = get$2, proto$2.milliseconds = milliseconds, proto$2.seconds = seconds, proto$2.minutes = minutes, proto$2.hours = hours, proto$2.days = days, proto$2.weeks = weeks, proto$2.months = months, proto$2.years = years, proto$2.humanize = humanize, proto$2.toISOString = toISOString$1, proto$2.toString = toISOString$1, proto$2.toJSON = toISOString$1, proto$2.locale = locale, proto$2.localeData = localeData, proto$2.toIsoString = deprecate("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", toISOString$1), proto$2.lang = lang, addFormatToken("X", 0, 0, "unix"), addFormatToken("x", 0, 0, "valueOf"), addRegexToken("x", matchSigned), addRegexToken("X", matchTimestamp), addParseToken("X", (function (e, t, n) {
    n._d = new Date(1e3 * parseFloat(e))
  })), addParseToken("x", (function (e, t, n) {
    n._d = new Date(toInt(e))
  })),
  //! moment.js
  hooks.version = "2.29.4", setHookCallback(createLocal), hooks.fn = proto, hooks.min = min, hooks.max = max, hooks.now = now, hooks.utc = createUTC, hooks.unix = createUnix, hooks.months = listMonths, hooks.isDate = isDate, hooks.locale = getSetGlobalLocale, hooks.invalid = createInvalid, hooks.duration = createDuration, hooks.isMoment = isMoment, hooks.weekdays = listWeekdays, hooks.parseZone = createInZone, hooks.localeData = getLocale, hooks.isDuration = isDuration, hooks.monthsShort = listMonthsShort, hooks.weekdaysMin = listWeekdaysMin, hooks.defineLocale = defineLocale, hooks.updateLocale = updateLocale, hooks.locales = listLocales, hooks.weekdaysShort = listWeekdaysShort, hooks.normalizeUnits = normalizeUnits, hooks.relativeTimeRounding = getSetRelativeTimeRounding, hooks.relativeTimeThreshold = getSetRelativeTimeThreshold, hooks.calendarFormat = getCalendarFormat, hooks.prototype = proto, hooks.HTML5_FMT = {
    DATETIME_LOCAL: "YYYY-MM-DDTHH:mm",
    DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss",
    DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS",
    DATE: "YYYY-MM-DD",
    TIME: "HH:mm",
    TIME_SECONDS: "HH:mm:ss",
    TIME_MS: "HH:mm:ss.SSS",
    WEEK: "GGGG-[W]WW",
    MONTH: "YYYY-MM"
  }, exports.COS = COS, exports._export_sfc = _export_sfc, exports.createPinia = createPinia, exports.createSSRApp = createSSRApp, exports.defineStore = defineStore, exports.e = e, exports.f = f, exports.gBase64 = gBase64, exports.hooks = hooks, exports.index = index, exports.n = n, exports.nextTick$1 = nextTick$1, exports.o = o, exports.onLaunch = onLaunch, exports.onLoad = onLoad, exports.onMounted = onMounted, exports.onPageScroll = onPageScroll, exports.onPullDownRefresh = onPullDownRefresh, exports.onReachBottom = onReachBottom, exports.p = p, exports.reactive = reactive, exports.ref = ref, exports.s = s, exports.t = t, exports.unref = unref, exports.useCssVars = useCssVars, exports.watch = watch, exports.watchEffect = watchEffect, exports.wx$1 = wx$1;